无法在Github页面中部署Blogdown制作的网站 [英] Cannot deploy website made by Blogdown in Github Pages
本文介绍了无法在Github页面中部署Blogdown制作的网站的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想部署一个使用Github页面中的blogdown包创建的基于Hugo的网站,同时将该网站的R源代码保存在相同的存储库中。这应该可以通过在Github存储库中的docs
目录中生成网站文件,然后将Github页面指向main
分支中的docs
文件夹来实现。然而,我无法使其工作。
在这里,我描述一个简单的博客站点来演示这个问题。该目录是使用RStudio创建的,选项如下图所示。
我已经编辑了config.toml
文件,特别是将publishDir
设置为docs
,并为网站添加了一个徽标。编辑后的config.toml
文件的内容如下所示。
baseurl = "/"
publishDir = "docs"
languageCode = "en-us"
title = "Blogdown website in Github Pages"
theme = "hugo-lithium"
googleAnalytics = ""
disqusShortname = ""
ignoreFiles = ["\.Rmd$", "\.Rmarkdown$", "_files$", "_cache$"]
[permalinks]
post = "/:year/:month/:day/:slug/"
[[menu.main]]
name = "About"
url = "/about/"
[params]
description = "Demonstrating problem in deploying a blogdown website in Github Pages."
# options for highlight.js (version, additional languages, and theme)
highlightjsVersion = "9.12.0"
highlightjsCDN = "//cdnjs.cloudflare.com/ajax/libs"
highlightjsLang = ["r", "yaml"]
highlightjsTheme = "github"
MathJaxCDN = "//cdnjs.cloudflare.com/ajax/libs"
MathJaxVersion = "2.7.5"
[params.logo]
url = "logo.png"
width = 50
height = 50
alt = "Logo"
我还将netlify.toml
文件中publish
参数的值编辑为docs
。我这样做是为了选择使用Netlify部署网站,而不是Github页面。编辑后的netlify.toml
文件内容为:
[build]
command = 'hugo'
publish = 'docs'
[build.environment]
HUGO_VERSION = '0.89.4'
[context]
[context.branch-deploy]
command = 'hugo -F -b $DEPLOY_PRIME_URL'
[context.deploy-preview]
command = 'hugo -F -b $DEPLOY_PRIME_URL'
[context.production]
[context.production.environment]
HUGO_ENV = 'production'
网站内容被添加到content
文件夹中,该文件夹包括about.md
文件和2021-12-09-sample-post.Rmd
示例帖子。content
文件夹的结构为:
content
|-- about.md
|-- post
|-- 2021-12-09-sample-post.Rmd
通过将文件logo.png
放在staticimages
目录中来添加徽标。该示例的源代码可以从here下载。RStudio中的本地构建运行得非常好。本地搭建网站后的文件上传here。我已将.nojekyll
文件放在main
目录和docs
文件夹中,以防止Github页面使用Jekyll。
但是,生成的Github页面站点does not work。但it works perfectly in Netlify。
我还尝试将文件config.toml
中的baseurl
参数的值更改为指向Github托管目录。该网站是在RStudio中通过Bloomdown完美生成的。上传源代码以及生成的网站文件here。但现在,neither Github Pagesnor Netlify已正确部署网站。我希望能够在Github页面和Netlify中部署网站,就像使用R中的bookdown
包生成的网站可以做到的一样。如果这根本不可能,我希望至少能够在Github页面中部署网站。我想知道我在网站代码或配置中犯了什么错误。
推荐答案
简明答案:在config.toml
中设置relativeURLs = true
,以便您的页面使用相对URL(但这实际上取决于主题对相对URL的支持;hugo-lithium
主题应该很好)。
更长的答案:
您的Github页面URLhttps://joydeepchowdhury.github.io/deploymentproblem/包含子路径deploymentproblem/
,而您的Netlify URL不包含:https://deploymentproblem.netlify.app/。如果您不使用相对URL,这两个站点中的一个站点上的资源加载将不正确,例如https://joydeepchowdhury.github.io/deploymentproblem/上的/images/logo.png
表示https://joydeepchowdhury.github.io/images/logo.png,这是错误的(应该是https://joydeepchowdhury.github.io/deploymentproblem/images/logo.png),但在Netlify站点上是正确的:https://deploymentproblem.netlify.app/images/logo.png。绝对/相对URL很难理解,但理解起来却极其重要。您可以阅读博客一书Appendix B.1的最后部分。
另一种解决方案是为不同的站点指定不同的。例如,您可以配置
baseURL: "https://joydeepchowdhury.github.io/deploymentproblem/"
在config.toml
中,但在netlify.toml
中覆盖它:
[build]
command = 'hugo -b https://deploymentproblem.netlify.app/'
这篇关于无法在Github页面中部署Blogdown制作的网站的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文