我可以在 github 页面上将我的 wordpress 博客作为静态网页托管吗

Posted

技术标签:

【中文标题】我可以在 github 页面上将我的 wordpress 博客作为静态网页托管吗【英文标题】:Can I host my wordpress blog on github pages as a static webpage 【发布时间】:2015-12-30 09:16:55 【问题描述】:

我想让我的 WordPress 博客安装在 Localhost 上以推送到 GitHub 并在 GitHub 上作为静态页面运行。我可以做吗,如果可以,请给我一个详细的答案,包括所涉及的步骤和问题?

我不在乎我的页面是否是静态的,但我可以将它托管在 GitHub 页面上吗?

【问题讨论】:

【参考方案1】:

你不能。如果你想要一个动态页面,你会使用 WordPress——这就是使用它的全部意义所在。您当然可以抓取 WordPress 生成的 html 并将其推送到您的 GitHub,但我认为这将是很多手动工作。

您可以尝试使用静态页面生成器,即https://github.com/jekyll/jekyll

【讨论】:

附言。您可以使用一个工具来获取每个页面的所有源代码(如果您在 Mac 上,OS X 的 SiteSucker 非常好),然后进行多文件搜索和替换以将所有链接交换到您的 github 地址。真的没有太多的手工工作:) 对于投票最多的答案,这是非常具有误导性的。作为此处另一个答案中链接的 WP 插件的作者,它和另一个流行的 WP 到静态 HTML 导出插件都可以做到这一点。我的插件还将自动部署到包括 GitHub Pages 在内的服务,因此它是一键式过程,比使用 SiteSucker、HTTrack 等手动抓取然后推送到 GH 容易得多:wordpress.org/plugins/static-html-output-plugin【参考方案2】:

这个网站给出了如何做到这一点的一个很好的答案:https://www.hywel.me/static/site/wordpress/2016/07/17/fast-free-static-website-with-wordpress-and-github-pages.html

简而言之:

    设置 GitHub 页面。 在 WordPress 中安装 Simply 静态插件。 将插件中的导出推送回您的 git 存储库,您就完成了!

【讨论】:

如何在此设置中更新内容?用户可以进入管理页面还是需要将 repo 克隆到本地机器,更新内容,然后推送到源? 您只需在本地(免费)或服务器上安装 WordPress 插件。接下来,让它生成一个包含所有静态文件的 zip 文件。解压缩,提交到 git 并推送到相应的 GitHub 分支。如果您按照指南操作,将按预期工作。请记住,动态非 javascript 内容(如搜索)将停止工作。如果您想更新,请在 WordPress 安装中进行更新,然后再次导出并重复这些步骤。您可以覆盖旧文件,git 会检测到更改。 是的,但我说的是用户只能使用所见即所得的系统。他们不会设置本地 wordpress 安装并设置 git。 如果你在服务器上安装 wordpress,你可以创建一个 bashscript 和一个 chronjob 来自动解压缩导出,替换文件夹并提交并推送到 git。这样你就可以说它每小时同步一次(?),他们不需要设置任何东西。 Simply Static 不支持 chron 作业。你有关于这个 bashscript 的示例/文档吗?我不是后端人员,所以我需要有关如何执行此操作的步骤。对我来说,任何事情都只是rest of the f-ing owl【参考方案3】:

如果您绝对不能从 wordpress 切换,但绝对需要托管在 github 页面上,那么您唯一的选择可能是研究一些 wordpress 插件,它将带您的整个网站并吐出一个静态网站(有点像jekyll,但专门针对 wordpress)。

edit:居然有这样一个插件:https://wordpress.org/plugins/static-html-output-plugin/

我刚刚在全新的 WP 安装上对其进行了测试,它似乎可以正常工作,但有些事情似乎无法正常工作。

【讨论】:

【参考方案4】:

您可以从 wordpress 迁移到 jekyll 静态站点生成器,它为 github 页面提供动力。

你会找到migration documentation on the jekyll site。

【讨论】:

【参考方案5】:

不幸的是,您不能这样做,因为 WordPress 是一个 WebApp,也就是说,需要一个数据库。很抱歉成为坏消息的带来者。

如果您正在考虑替代方案,请考虑以下可从 GitHub Pages 托管的静态站点生成器

Cryogen (Clojure) Jekyll(红宝石)

【讨论】:

【参考方案6】:

不,因为你需要:

静态网站生成器(如Hugo) 遵循类似于Andy 的“Simple Workflow Deploy to Github Pages using Git”的过程。 它可能无法解决您在 wordpress 方面的问题,但可以帮助其他想要在 GitHub 上发布静态页面的人。 (是的,你可以migrate from wordpress to Hugo,加上there is an pending request)
转到 Github,使用以下约定创建一个新存储库:.github.io。 为了清楚起见,我的仓库是andy4thehuynh.github.io。 另外,创建一个 Hugo 存储库的本地实例。 cd 到本地机器上的一个空目录并执行hugo new site ./. 使用 git init 初始化一个 git 存储库并添加您的远程 git remote add origin git@github.com:<your_handle>/<your_handle>.github.io.git。 太棒了,我们有一个新的博客代码库。 让我们添加一个测试帖子;执行hugo new post/test.mdecho 'Your live on Github Pages' >> ./content/post/test.md。 将草稿标志设置为 true 以确保您的帖子能够呈现。 运行 hugo 告诉 Hugo 构建您的网站。 您的公共目录应填充新生成的站点。太棒了! 酱汁来了;执行echo 'public' >> .gitignore。现在,Git 将不知道您的公共目录(您编译的公共内容用户将在浏览器中查看)。您很快就会明白为什么。 使用git checkout -b source 退出master 分支。我们这样做是因为 GH 页面不关心我们的源代码(也就是我们的源分支)。它只关心公共内容。 添加并提交您的源更改。执行git add -Agit commit -m 'Initial Commit'。使用git push origin source 推送您的更改。 最后,cd 进入您的public 文件夹。请注意,Git 不会跟踪此处的更改。这是出于预期目的。执行git initgit add -Agit commit -m 'Initial commit'。使用git push origin master 推送您的更改。

打开浏览器访问名为 .github.io 的存储库,并在 sourcemaster 分支之间切换。 您所有编译的内容都应该在您的master 分支中。 GH 页面会看到并在<your_handle>.github.io 上呈现它。 您将在 source 分支中编写草稿。使用hugo 命令编译它。当您对编译的更改感到满意时,推送您的public 文件夹并成为摇滚明星。

【讨论】:

以上是关于我可以在 github 页面上将我的 wordpress 博客作为静态网页托管吗的主要内容,如果未能解决你的问题,请参考以下文章

如何在端口 80 上将战争文件部署到 Glassfish?

如何在github上将客户端和服务器端项目文件夹作为一个项目(api +前端)一起推送?

在 Linux 上将 PHP 与 MS Access 2007-2010 连接

在 WooCommerce 特定 ID 产品页面上将自定义内容添加到多个产品中

在 Linux 机器上将 Qt 部署到 Windows

在 .aspx 页面上将字节显示为图像