Ruby on rails 为什么Rails不在供应商目录中预编译Java脚本和样式表?
在我的项目中,我在Ruby on rails 为什么Rails不在供应商目录中预编译Java脚本和样式表?,ruby-on-rails,ruby,ruby-on-rails-3,ruby-on-rails-3.1,Ruby On Rails,Ruby,Ruby On Rails 3,Ruby On Rails 3.1,在我的项目中,我在vendor/assets/JavaScripts和vendor/assets/stylesheets目录中有第三方JavaScripts和Css文件。在开发模式中,我可以使用javascript\u include\u标记和stylesheet\u include\u标记方法引用这些目录中的资产 但是,当我运行rakeassets:precompile命令时,这些脚本不会被预编译,因此无法在生产环境中访问 有人能告诉我为什么rake任务忽略了供应商目录中的资产吗?我能够回答我
vendor/assets/JavaScripts
和vendor/assets/stylesheets
目录中有第三方JavaScripts和Css文件。在开发模式中,我可以使用javascript\u include\u标记
和stylesheet\u include\u标记
方法引用这些目录中的资产
但是,当我运行rakeassets:precompile
命令时,这些脚本不会被预编译,因此无法在生产环境中访问
有人能告诉我为什么rake任务忽略了
供应商
目录中的资产吗?我能够回答我自己的问题
这对我来说并不明显,但确实有道理。除了application.css
和application.js
文件之外,所有其他的.js/.css文件都会被预编译任务忽略。因此,只要在application.js/.css
文件中使用/=require\u-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 )