通过 github.io 渲染静态网页不起作用 - 对于使用 gatsby 创建的网站/从 github repo 托管在 netlify 上的网站

Posted

技术标签:

【中文标题】通过 github.io 渲染静态网页不起作用 - 对于使用 gatsby 创建的网站/从 github repo 托管在 netlify 上的网站【英文标题】:Rendering static webpage via github.io not working - for a website created with gatsby / hosted on netlify from a github repo 【发布时间】:2019-11-19 17:41:26 【问题描述】:

我想为我在此链接找到的 github.io 个人资料使用个人网站模板 - https://github.com/bchiang7/v4。我对其进行了个性化并将其托管在 netlify.com 的此链接 - https://objective-shannon-b564f7.netlify.com。在 netlifly 上看起来很完美!但是,当我下载部署静态文件并通过 vidyabhandary.github.io 呈现它们时 - 部分站点丢失,其余部分看起来很奇怪。

控制台错误提示一个json文件,一些字体文件和一些资源丢失。

Uncaught Error: Missing resources for /
    at t.n.render (ensure-resources.js:135)
    at Oi (react-dom.production.min.js:173)
    at Ri (react-dom.production.min.js:172)
    at Mi (react-dom.production.min.js:180)
    at $a (react-dom.production.min.js:232)
    at Ka (react-dom.production.min.js:233)
    at Ol (react-dom.production.min.js:249)
    at Cl (react-dom.production.min.js:248)
    at kl (react-dom.production.min.js:245)
    at Ja (react-dom.production.min.js:243)

字体文件和 json 存在于目录路径中,尽管大小写(名称)不匹配。

我在 netlifly 上的部署没有任何错误 - 只是警告我的 logo.png 不是方形的。

    之前在 netlifly 部署中有一个警告,指出不满足 gatsby 的对等依赖项 - 所以我在 package.json 文件中添加了 "webpack":"4.4.0" 并且该警告消息不再存在.

    警告“gatsby-plugin-netlify > webpack-assets-manifest@3.1.1”未满足对等依赖关系“webpack@>=4.4.0”

    我添加了一个 .nojekyll 文件

    静态文件不变——我是否使用——gatsby build/gatsby build;纱线构建/纱线构建。

不知道我还缺少什么。

'''
    11:18:43 AM: success Building production javascript and CSS bundles — 3.647 s
    11:18:44 AM: success Building static html for pages — 1.385 s — 4/4 11.30 pages/second
    11:18:44 AM: Generated public/sw.js, which will precache 10 files, totaling 472828 bytes.
    11:18:44 AM: info Done building in 8.671 sec

---

11:18:44 AM: Started saving node modules
11:18:44 AM: Finished saving node modules
11:18:44 AM: Started saving yarn cache
11:18:44 AM: Finished saving yarn cache
11:18:44 AM: Started saving pip cache
11:18:44 AM: Finished saving pip cache
11:18:44 AM: Started saving emacs cask dependencies
11:18:44 AM: Finished saving emacs cask dependencies
11:18:44 AM: Started saving maven dependencies
11:18:44 AM: Finished saving maven dependencies
11:18:44 AM: Started saving boot dependencies
11:18:44 AM: Finished saving boot dependencies
11:18:44 AM: Started saving go dependencies
11:18:44 AM: Finished saving go dependencies
11:18:47 AM: Build script success
11:18:47 AM: Starting to deploy site from 'public/'
11:18:47 AM: Creating deploy tree 
11:18:47 AM: 0 new files to upload
11:18:47 AM: 0 new functions to upload
11:18:47 AM: Starting post processing
11:18:47 AM: Post processing done
11:18:48 AM: Site is live
11:19:15 AM: Finished processing build request in 1m57.314333898s

'''

部分部署日志 - 没有显示错误。

我是否需要更改作为 netlifly 部署文件的一部分存在的文件夹?

【问题讨论】:

你读过这个吗? gatsbyjs.org/docs/how-gatsby-works-with-github-pages 根据该链接 - 我将 "deploy": "gatsby build && gh-pages -d public -b master" 添加到我的 package.json 文件并添加到开发依赖项 gh-pages。但是生成的静态文件是相同的(我正在下载创建的文件并添加到 github.io 站点),即使进行了这些更改,文件也没有任何更改。 pathprefix 的那一点呢? 路径前缀仅适用于通过 /reponame 呈现网站 - 而不是直接来自 *.github.io。 【参考方案1】:

这是最近在 Gatsby v2.11.1 中修补的。你可以see the full issue thread on Github here。

【讨论】:

我使用的是 2.3.x 版本的 gatsby。看来这个新问题还是要提出来的。 (线程结束)。该线程中提到的其他一些事情 - 还没有工作! @Vidya 您可以安全地从 2.3.x 升级到 2.11.1,除非您依赖某些特定的内部结构。这个错误消息实际上是在重构相关内部时从代码库中删除的,也就是说在 2.11.1 上不可能得到这个错误。 为了避免这看起来像是一个偷懒的答案:直到 2.11.1 之前,我一直在多个项目中看到这个错误。我相当参与了链接线程,并让 inkteam 意识到问题的严重性。 太棒了!非常感谢@coreyward !!那行得通!现在我的 github 页面正在渲染!虽然仍然没有找到字体。所以我猜这部分是由于另一个原因 - 它仍然显示HTTP404: NOT FOUND - The server has not found anything matching the requested URI (Uniform Resource Identifier). GET - https://vidyabhandary.github.io/static/Calibre-Regular-b63c62e591d0c8fbe2c8f009883346d5.woff2 用于许多字体。字体存在于该目录中。 @Vidya 是的,我也收到了 404;也许 Github 不支持提供 .woff2 文件?或者它只是错误的文件夹?没有看到更多细节很难说。

以上是关于通过 github.io 渲染静态网页不起作用 - 对于使用 gatsby 创建的网站/从 github repo 托管在 netlify 上的网站的主要内容,如果未能解决你的问题,请参考以下文章

将 contentState 渲染到编辑器后,Draft.js 提及插件不起作用

Github Pages部署静态页面并绑定域名

(重新)在更改事件处理程序中渲染主干视图不起作用

如何在Github上免费部署静态网站

css在github页面上不起作用[关闭]

通过 JNI 调用简单的 java 静态方法不起作用,尽管 c++ 编译并运行它