Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/53.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 为什么Rails不在供应商目录中预编译Java脚本和样式表?_Ruby On Rails_Ruby_Ruby On Rails 3_Ruby On Rails 3.1 - Fatal编程技术网

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 )