正在用 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 -> 新建 -> 一切正常!
我正在尝试在 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 -> 新建 -> 一切正常!