Nanoc在github中部署页面时更改基本路径

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

一切顺利,除了资产(如css,javascripts)和所有链接一般指向回购的根目录:

喜欢

/css/style.css

而不是

/docs/css/style.css

一切在localhost上运行良好但在发布时失败。

我正在使用rake发布将其推送到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_pathsfilter使所有URL相对。 对于HTML,请使用filter :relativize_paths, :type => :html 。 对于CSS,请使用:css而不是:html

干杯

丹尼斯