【问题标题】:Ruby on Rails - Stylesheets in /stylesheet directory and not in /assets, no fingerprint in productionRuby on Rails - /stylesheet 目录中而不是 /assets 中的样式表,生产中没有指纹
【发布时间】:2014-03-22 15:56:05
【问题描述】:

问题如下:

在制作网站上:

<link data-turbolinks-track="true" href="/assets/application-88627ba4e39c16e7875ecd7dacb14d52.css" media="all" rel="stylesheet">
<link data-turbolinks-track="true" href="/stylesheets/stylesheet.css" media="all" rel="stylesheet">

在 application.css 中:

*= require_self
(no *= require_tree)

在 index.html.haml 中:

= stylesheet_link_tag "application", media: "all", "data-turbolinks-track" => true
= stylesheet_link_tag "stylesheet", media: "all", "data-turbolinks-track" => true

所以问题是:application.css 工作正常,但我不希望它包含所有其他样式表。 (我想要每个子域有不同的样式表) 所以我需要将它包含在另一个 stylesheet_link_tag 中,但这不能正常工作。它不在 /assets 目录中,也没有指纹。 在开发中,它确实有效。

我该如何解决这个问题? 谢谢!

【问题讨论】:

    标签: css ruby-on-rails ruby ruby-on-rails-4 asset-pipeline


    【解决方案1】:

    您可能缺少预编译目标中的样式表。将此添加到您的 config/application.rb:

    config.assets.precompile += %w(stylesheet.css)
    

    它在开发模式下工作,因为此环境的默认设置将在应用程序本身中提供资产,并将按需编译资产而不检查 config.assets.precompile 设置。

    【讨论】:

    • 谢谢! application.rb 现在看起来像这样: config.assets.enabled = true config.assets.precompile += %w(.css) config.assets.precompile += %w(.js)跨度>
    【解决方案2】:

    production.rb 中,确保您拥有:

    config.assets.precompile += ['stylesheet.css']

    这样当你运行 bundle exec rake assets:precompile 时它也会被编译。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-08-14
      • 1970-01-01
      • 1970-01-01
      • 2013-07-11
      • 2013-05-25
      • 2015-04-30
      • 2016-02-19
      • 1970-01-01
      相关资源
      最近更新 更多