gpt4 book ai didi

ruby-on-rails - Nanoc 在 github 中部署页面时更改基本路径

转载 作者:数据小太阳 更新时间:2023-10-29 08:28:09 24 4
gpt4 key购买 nike

我有一个使用 nanoc 构建的简单静态页面应用程序,我想将其部署为 github 页面。

一切顺利,除了 Assets (如 css、javascripts)和所有链接一般都指向 repo 的根:

喜欢

/css/style.css

而不是

/docs/css/style.css

在本地主机上一切正常,但在发布时失败。

我正在使用 rake publish 将其推送到 gh-pages。

这是我的 Rakefile

require 'nanoc3/tasks'

BASE_URL = "http://darko1002001.github.com/docs/"

desc "Compile the site"
task :compile do
`nanoc compile`
end

desc "Publish to http://documentation.getchute.com"
task :publish => [:clean] do
FileUtils.rm_r('output') if File.exist?('output')

sh "nanoc compile"

ENV['GIT_DIR'] = File.expand_path(`git rev-parse --git-dir`.chomp)
old_sha = `git rev-parse refs/remotes/origin/gh-pages`.chomp
Dir.chdir('output') do
ENV['GIT_INDEX_FILE'] = gif = '/tmp/dev.gh.i'
ENV['GIT_WORK_TREE'] = Dir.pwd
File.unlink(gif) if File.file?(gif)
`git add -A`
tsha = `git write-tree`.strip
puts "Created tree #{tsha}"
if old_sha.size == 40
csha = `echo 'boom' | git commit-tree #{tsha} -p #{old_sha}`.strip
else
csha = `echo 'boom' | git commit-tree #{tsha}`.strip
end
puts "Created commit #{csha}"
puts `git show #{csha} --stat`
puts "Updating gh-pages from #{old_sha}"
`git update-ref refs/heads/gh-pages #{csha}`
`git push origin gh-pages`
end
end

规则

compile '/static/*' do
end

compile '/CNAME/' do
end

compile '/feed/' do
filter :erb
filter :kramdown, :toc_levels => [2]
end

%w(v3 */).each do |version|
compile "/changes/#{version}" do
filter :erb
filter :kramdown, :toc_levels => [2]
filter :colorize_syntax,
:colorizers => {:javascript => :pygmentsrb}
layout 'changes' if version[0] == '*'
layout 'default'
end
end

compile '*' do
filter :erb
filter :kramdown, :toc_levels => [2]
filter :colorize_syntax,
:colorizers => {:javascript => :pygmentsrb}
layout 'default'
end

route '/static/*' do
item.identifier[7..-2]
end

route '/CNAME/' do
'/CNAME'
end

route '/feed' do
'/changes.atom'
end

route '*' do
item.identifier + 'index.html'
end

layout '*', :erb

最佳答案

nanoc 默认生成绝对 URL,但您可以使用 relativize_paths 过滤器使所有 URL 相对。对于 HTML,使用 filter :relativize_paths, :type => :html。对于 CSS,请使用 :css 而不是 :html

干杯

丹尼斯

关于ruby-on-rails - Nanoc 在 github 中部署页面时更改基本路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13512871/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com