Nuxt.js部署GitHub Pages后资源baseURL缺失问题求助
解决Nuxt.js部署到GitHub Pages资源路径404问题
核心问题分析
站点根路径可正常访问,但/_nuxt/开头的资源请求返回404,本质是构建阶段Nuxt未正确注入baseURL,导致资源路径缺少仓库名前缀/pascal-presentation-site/,而GitHub Actions工作流可能未正确读取你的配置,甚至覆盖了相关设置。
具体解决思路
简化Nuxt配置,避免路径冲突
无需手动指定完整的buildAssetsDir,Nuxt会自动基于baseURL拼接构建资源路径,修改配置如下:export default defineNuxtConfig({ app: { baseURL: '/pascal-presentation-site/', buildAssetsDir: '_nuxt/', // 用相对路径,自动拼接baseURL }, });在GitHub Actions工作流中强制注入baseURL
打开你的.github/workflows/nuxtjs.yml,找到构建步骤,通过环境变量强制传递baseURL,确保构建时Nuxt读取到正确路径:- name: Build run: npm run build env: NUXT_APP_BASE_URL: '/pascal-presentation-site/'也可直接在构建命令中拼接环境变量:
- name: Build run: NUXT_APP_BASE_URL='/pascal-presentation-site/' npm run build验证构建产物的资源路径
可在workflow中添加步骤,检查生成的index.html里的资源路径是否正确,方便排查问题:- name: Check asset paths in index.html run: cat dist/index.html | grep "_nuxt"执行后查看日志,确认资源路径是否为
/pascal-presentation-site/_nuxt/xxx.js,若是则说明构建配置生效。确认GitHub Pages部署配置
进入仓库Settings -> Pages页面,确认:- 部署分支为
gh-pages - 部署目录选择
/ (root)(而非/docs等其他目录) - 工作流中的
publish_dir指向Nuxt构建输出目录./dist(原starter workflow默认正确,需确认未被修改)
- 部署分支为
移除工作流中可能覆盖配置的步骤
检查nuxtjs.yml内是否存在修改nuxt.config.js的脚本或步骤,若有直接删除,确保本地配置文件在构建时被正常读取。
内容的提问来源于stack exchange,提问作者Alexis Van San
相关产品推荐
相关产品推荐

