【问题标题】:Why is Rails not precompiling javascripts and stylesheets inside the vendor directory?为什么 Rails 不在供应商目录中预编译 javascript 和样式表?
【发布时间】:2013-05-01 00:05:46
【问题描述】:

在我的项目中,vendor/assets/javascriptsvendor/assets/stylesheets 目录中有第三方 JavaScript 和 Css 文件。在开发模式下,我可以使用 javascript_include_tagstylesheet_include_tag 方法引用这些目录中的资产。

但是,当我运行 rake assets:precompile 命令时,这些脚本没有被预编译,随后无法在生产中访问。

有人能说一下为什么vendor 目录中的资产会被 rake 任务忽略吗?

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-3.1


    【解决方案1】:

    我能够回答我自己的问题。

    这对我来说并不明显,但确实有道理。除了 application.cssapplication.js 文件之外,所有其他 .js/.css 文件都会被预编译 rake 任务忽略。因此,只要在 application.js/.css 文件中使用 //= require name_of_script 约定引用您的脚本和样式表,它们就会很好地附加到相关文件中。

    但是,如果您不希望将某些脚本放在 application.js/.css 文件中,那么您需要明确告诉 Rails 您仍然希望使用 config/environment/production.rb 或其他相关运行时环境中的这一行来预编译它们配置文件:

    # Precompile additional assets (application.js, application.css, and all non-JS/CSS are already added)
    config.assets.precompile += %w( morris.min.js raphael.min.js )
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-04-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-04
      • 2013-08-04
      相关资源
      最近更新 更多