2

我使用自举-SASS宝石和在生产我的导轨应用程序是一个子文件夹下部署,即根是http://www.example.com/sub/。一切正常,除了字体(特别是Glyphicons)的罚款:在CSS的路径,字体是这样的:导轨+自举:字体路径不包括基础URI(生产)

url("/assets/bootstrap/glyphicons... 

当它应该是

url("/sub/assets/bootstrap/glyphicons... 

的CSS和JS资产都有正确的路径,但字体不。我看了一会儿文件(和网络的其余部分)周围,但无法找到如何改变这个 - 我一个小白,当谈到资产管道的东西。

我知道了部署在Linux-Apache的乘客。

编辑:我要补充一点,我有这个在我的Apache网站的配置:

Alias /sub /path/to/rails/app/public 
<Location /sub> 
    PassengerBaseURI /sub 
    PassengerAppRoot /path/to/rails/app 
</Location> 
<Directory /path/to/rails/app/public> 
    Allow from all 
    Options -MultiViews 
</Directory> 

回答

3

这里是配置选项,我需要在配置/ application.rb中:

config.action_controller.relative_url_root = '/sub' 

我猜想这是因为预编译的资产(如引导SASS)当阿帕奇/乘客指令不生效等等您需要让预编译器知道字体的位置。感谢您的帮助,wkaha和archie,以下是bootstrap-sass github上的ilnk提示:https://github.com/thomas-mcdonald/bootstrap-sass/issues/443

+0

嘿!这对我有效。我遇到了字体路径的问题。 – mwangi

1

这是否帮助?

http://guides.rubyonrails.org/asset_pipeline.html

2.3.1 CSS和ERB

资产管道自动评估ERB。这意味着,如果你添加一个ERB扩展到CSS的资产(例如,application.css.erb),然后像asset_path助手在你的CSS规则可供选择:

.class { background-image: url(<%= asset_path 'image.png' %>) } 
+0

不完全是,但是第5.4节讨论了更改资产路径。显然,这发生在CSS和JS,但不是字体? – Peter

+0

使用path_to_font而不是asset_path作为字体资产。 – chaostheory

0

这可能是原因。

Bootstrap-sass gem precompiles the glyphicons

config.assets.precompile < <%R(引导/ glyphicons,半身人,定期(?: EOT | SVG | TTF | WOFF)$)

建议的解决方法:

将4个图形文件复制到您的资产管道中,并在您自己的生产或开发配置中进行预编译。