ITADN

url配置为子目录时,静态资源路径生成错误

#123Closedracpast 创建于 2025-11-28
bugwaiting next release
R
racpastcommented
### 问题描述 当 Hexo 的 `_config.yml` 中 url 配置包含子目录(例如 `https://xxx.github.io/blog`)时,主题生成的 CSS 和 JS 引用路径会出现重复的根目录,导致资源 404 无法加载。 ### 复现步骤 只需在一个全新的 Hexo 环境中按以下步骤操作即可复现: 1. 初始化环境 ```bash hexo init blog cd blog npm install cd themes git clone https://github.com/D-Sketon/hexo-theme-reimu.git reimu cd .. ``` 2. 修改根目录 _config.yml ```yml url: https://xxx.github.io/blog theme: reimu ``` 3. 启动服务 ```bash hexo clean hexo s ``` 4. 访问`http://localhost:4000/blog/` <img width="2502" height="1509" alt="Image" src="https://github.com/user-attachments/assets/27f38dfb-6fff-4a62-b22d-ed7ce4cde123" /> _* 事实上,将`css(url_for(...))`修改为`css(...)`即可,或在`scripts`文件夹下放置:_ ```js hexo.extend.filter.register('after_render:html', function(str, data){ var root = hexo.config.root; if(root && root !== '/'){ var doubleRoot = root + root.replace(/^\//, ''); str = str.split(doubleRoot).join(root); } return str; }); ``` _即可正常加载。_ ### 你的 Hexo 和 插件版本 ```text +-- hexo-generator-archive@2.0.0 +-- hexo-generator-category@2.0.0m ls --depth 0npm ls --depth 0 +-- hexo-generator-index@4.0.0 +-- hexo-generator-tag@2.0.0og> +-- hexo-renderer-ejs@2.0.0 +-- hexo-renderer-marked@7.0.1>npm ls --depth 0 +-- hexo-renderer-stylus@3.0.1 +-- hexo-server@3.0.0 +-- hexo-theme-landscape@1.1.0 `-- hexo@8.1.1 ```
关闭于 2025-11-29 1 条评论