我在_data文件夹中创建了一个settings.yml。这也包含我的baseurl: / run-and-roll 。
所以我在我的资产前插入了{{ site.data.settings.baseurl }}
。 css 文件正在加载 html 中定义的图像。但是,css中请求的任何背景图像都没有显示?
答案 0 :(得分:1)
https://jekyllrb.com/docs/configuration/中显示的每个配置变量都有意义。
通常模板会在使用{{site.baseurl}}
生成某些网址(例如资源的网址)时预先显示基本网址,因此如果您从其他位置手动设置它,则默认情况下不会使用它。
您所阅读的内容是将设置和配置分开的一个好习惯是对于与jekyll内置变量无关的其他每个配置,将它们放在数据文件上是一个很好的做法,所以你保留你的_conf.yml
尽可能清楚地显示官方文档suggests,这样可以更轻松地维护和更新您的Jekyll实例:
除了Jekyll提供的内置变量之外,您还可以 指定您可以通过Liquid访问的自定义数据 模板系统。
Jekyll支持从位于的YAML,JSON和CSV文件加载数据 _data目录。请注意,CSV文件必须包含标题行。
这个强大的功能可以避免模板中的重复 并在不更改_config.yml的情况下设置特定于站点的选项。
插件/主题也可以利用数据文件来设置配置 变量
答案 1 :(得分:1)
按照其他答案的建议将baseurl
放入_config.yml
:)
b / c如果您正在使用Jekyll和Github页面,那么如果site.url
或site.baseurl
未指定CNAME
或config.yml
,则为{{ 3}}。然后它们将由production build
来自github page generator code-source:
# Set `site.url` and `site.baseurl` if unset and in production mode.
def set_url_and_baseurl_fallbacks!
return unless Jekyll.env == "production"
repo = drop.send(:repository)
site.config["url"] ||= repo.url_without_path
if site.config["baseurl"].to_s.empty? && !["", "/"].include?(repo.baseurl)
site.config["baseurl"] = repo.baseurl
end
end
jekyll的默认构建环境是development
。因此,在本地工作。每件事都会按照你的预期运行。即使将baseurl
放在_config.yml
但是在github页面一侧,该网站是使用以下命令构建的:
JEKYLL_ENV=production jekyll build
并且site.url
和site.baseurl
被覆盖。
在您的情况下,如果您使用{{ site.data.settings.baseurl }}
访问某个网页,并且设置为(''
或'/'
),您可能不会注意到导航问题。用于css和js的bat assets path
将无法按预期工作。
所以,只需将baseurl
放入_config.yml
,然后相应地重构您的布局和页面。你会没事的。
旁注:正如@David回答中所提到的,这是放置网站设置的jekyll惯例。在_config.yml
,但如果你想把它们放在其他地方,你可以。请确保将production
版本声明为。
即使将网站移至github项目Clearing Up Confusion Around baseurl -- Again:/<user-name>.github.io/<repo-name>
而非用户(或组织)回购:/<user-name>.github.io
。你需要设置如下:
site.baseurl: ''
或者只是删除它。因为您从主存储库(参见repo)
服务您的网站答案 2 :(得分:0)
使用{{ site.baseurl }}
是一个jekyll惯例,将其移动到数据文件不是一个好主意。
尽管如此,从您的css角度来看,runner.jpg
的路径始终为../assets/img/runner.jpg
。无需使用baseurl
。