在 GitHub 页面上托管下一个应用程序时,js 和 css 未加载

问题描述 投票:0回答:2

Next.js 在 _next 文件夹中构建所有静态资源,但 Github 页面不需要提供这些文件。我的静态资产是404。

示例存储库:https://github.com/ajaymathur/ajaymathur.github.io Master 分支用于托管,dev 分支用于开发。

我猜 github 页面没有托管以 - 开头的路径。我该如何解决这个问题?

jekyll next.js github-pages
2个回答
34
投票

在页面存储库的根目录中添加 .nojekyll 文件

这将禁用 Jekyll 处理并让 _next 文件夹(包含下划线)复制到最终网站。


12
投票

仅添加

.nojekyll
文件对我来说还不够。我必须更改构建命令以添加文件after导出到静态 HTML/CSS/JS,如下所示

  "scripts": {
    ...
    "static": "next build && next export && touch ./out/.nojekyll && echo 'www.mywebsite.com' > ./out/CNAME",
    ...
  },

我还使用

gh-pages
将文件从
out
文件夹复制到 Github Pages 将服务的分支,默认情况下,
.nojekyll
文件未被复制。可以通过将
-t
选项设置为
true

来避免这种情况
  "scripts": {
    ...
    "deploy": "gh-pages -d out -t true"
    ...
  },

完成这些更改后,

npm run static && npm run deploy
应该可以完成您想要的操作。

© www.soinside.com 2019 - 2024. All rights reserved.