如何在生产环境中使用config.assets.precompile仅包含“lib/assets/javascripts”、“lib/assets/stylesheets”、“vendor/assets/javascripts”和“vendor/assets/stylesheets”中的文件?
基本上是这样的:
config.assets.precompile += %w( pagespecific.js anotherpage.js )但用于自动包含非“app/assets/javascripts”或“app/assets/stylesheets”的特定目录中的文件。
*编辑:添加我最终用于页面特定js的解决方案
config.assets.precompile += ['pages/*.js']发布于 2012-09-27 13:18:38
你可以简单地写成这样:
config.assets.precompile += ['directory/*']发布于 2012-09-27 12:59:15
编译资源的目的是构建一个(或少量)文件,以最小化来自浏览器的HTTP请求数量。
如果你打算单独服务每个文件,那么为什么不禁用预编译呢?
要按预期使用预编译,请使用链轮的require_directory将整个目录构建为一个文件
//= require_directory ./awesome_js_app...and列出config.assets.precompile数组中文件。
默认情况下,所有CSS都内置于application.js中的application.css和JS中。您可以使用config/environments/production.rb中的预编译指令添加更多要编译的顶级文件(如果愿意,还可以添加其他环境)。例如:
config.assets.precompile += %w( public.css public.js )然后,这些顶级文件中的链轮//= require ...指令将确定最终编译文件的组成。
您可以在布局中使用这些附加的顶级文件,以便为某些视图提供不同的CSS & JS。
发布于 2014-10-01 15:26:34
将其包含为资产路径可能会更好一些(根据您的示例解决方案):
config.assets.paths << Rails.root.join('app', 'assets', 'javascripts', 'pages')它还允许您包含不在资产目录中的路径(例如,包含bootstrap-sass)。然后,将这些路径添加到公共目录中的assets文件夹,如果使用类似asset_sync的内容,则会将这些路径推送到您的资产位置。
https://stackoverflow.com/questions/12613980
复制相似问题