正在用 pushState/popstate 修改 url 重建 github 页面

Reconstructing github page from url modified with pushState/popstate

我正在尝试在 github-pages 上构建一个小型主页,其中包含 (1) 标题、(2) 导航栏和 (3) 内容 window。我正在使用 ajax 更新内容,并使用 pushState/popstate 进行 url 更新和浏览器历史记录。问题是,如果 刷新 页面,例如user.github.io/content1,找不到页面(因为html文件实际上并不存在)。

我读到如果有人控制服务器,这通常是通过将每个请求的深度 link 重定向(或 mod_rewrite-ing)到一个资源并从那里用 [=36= 重建页面来解决的] 根据要求link。在 gh-pages 上,这是不可能的,所以我考虑实际创建所有反映 url 路径的 html 文件,但每个文件只包含 javascript 代码re-generate 相应的状态(例如,如果我想更新我的标题或导航栏中的 link,我不必手动编辑所有 html 文件)。

我读过有关 Jekyll 的资料,但我是初学者,我想从头开始编写所有程序以学习一些东西。

您认为这种做法是在浪费时间吗?有更好的方法吗?

非常感谢,Stefan

两种情况:

制作单页应用程序 (SPA)

您的 SPA 是一个 javascript 应用程序,需要将数据发送到 to/from 存储数据的服务器,并在客户端呈现结果。

在这种情况下,您的问题不是 Jekyll 问题,而是数据问题。 然后你可以认真看看react,angular等等,...

制作静态网页

Github pages is using Jekyll to generate static pages.

通过这种方式,您可以生成仅包含标题、特定导航栏和内容的静态页面。

在开发和性能方面,效率会高很多。

为什么更好?

仍然假设您不是在构建 SPA。

任何时候您在 gh-pages 中进行更改(任何新的页面,post,...),您的网站都会重建(post,页面,包括导航,等等)。

新页面 -> 提交 gh-pages -> 新建 -> 一切正常!