在我的项目中,在vendor/assets/javascripts和vendor/assets/stylesheets目录中有第三方JavaScripts和Css文件。在开发模式下,我可以使用javascript_include_tag和stylesheet_include_tag方法引用这些目录中的资产。
但是,当我运行rake assets:precompile命令时,这些脚本没有进行预编译,因此无法在生产环境中访问。
请问为什么vendor目录中的资源会被rake任务忽略?
发布于 2013-05-01 08:36:57
我能够回答我自己的问题。
这对我来说并不明显,但它确实有意义。除了application.css和application.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 )https://stackoverflow.com/questions/16310867
复制相似问题