【问题标题】:Rails + Bootstrap: Font path not including base URI (production)Rails + Bootstrap:字体路径不包括基本 URI(生产)
【发布时间】:2014-01-08 07:09:36
【问题描述】:

我正在使用 bootstrap-sass gem,在生产中,我的 rails 应用程序部署在一个子文件夹下,即根目录是 http://www.example.com/sub/。除了字体(尤其是 Glyphicons)外,一切都很好:在 CSS 中,字体的路径是这样的:

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

应该是什么时候

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

CSS 和 JS 资源都有正确的路径,但字体没有。我已经查看了文档(以及网络的其余部分)一段时间,但找不到如何更改这一点——在资产管道方面我是个菜鸟。

我已经将它部署在 Linux-Apache-Passenger 上。

编辑:我应该补充一点,我的 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>

【问题讨论】:

    标签: ruby-on-rails twitter-bootstrap-3 passenger glyphicons bootstrap-sass


    【解决方案1】:

    这有帮助吗?

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

    2.3.1 CSS 和 ERB

    资产管道会自动评估 ERB。这意味着,如果您将 erb 扩展添加到 CSS 资产(例如 application.css.erb),则您的 CSS 规则中可以使用asset_path 之类的帮助器:

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

    【讨论】:

    • 不完全是,但第 5.4 节讨论了更改资产路径。显然这发生在 CSS 和 JS 而不是字体?
    • 对字体资源使用 path_to_font 而不是asset_path。
    【解决方案2】:

    这可能是原因。

    Bootstrap-sass gem precompiles the glyphicons

    config.assets.precompile

    建议的解决方法:

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

    【讨论】:

      【解决方案3】:

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

      config.action_controller.relative_url_root = '/sub'
      

      我猜这是因为 Apache/Passenger 指令在预编译资产(例如 Bootstrap SASS)时不会生效,所以你需要让预编译器知道字体的位置。感谢 wkaha 和 archie 的帮助,这是引导我进入的 bootstrap-sass github 上的 ilnk:https://github.com/thomas-mcdonald/bootstrap-sass/issues/443

      【讨论】:

      • 嘿!这对我有用。我的字体路径有问题。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-19
      相关资源
      最近更新 更多