我在预编译资产后在生产模式下测试我的Rails 3应用程序,但在某些页面中,我声明了自定义js文件我有这个错误:
ActionView::Template::Error (js/jquery.dataTables.js isn't precompiled):
55:
56:
57: <% content_for :head do %>
58: <%= javascript_include_tag 'js/jquery.dataTables' %>
59: <%= javascript_include_tag 'js/jquery.dataTables.bootstrap' %>
60: <%= javascript_include_tag 'configure_sort_datatable' %>
61: <% end %>
这些文件在那里。可能会发生什么?
这是我的production.rb配置:
config.cache_classes = true
config.consider_all_requests_local = false
config.action_controller.perform_caching = true
config.serve_static_assets = true
config.assets.compress = true
config.assets.compile = false
config.assets.digest = true
答案 0 :(得分:0)
对于Rails 3.2,您必须明确告诉Sprockets它必须预编译哪些其他库。
#config/application.rb
config.assets.precompile += %w(js/jquery.dataTables.js js/jquery.dataTables.bootstrap.js configure_sort_datatable.js)
默认情况下为:
[ Proc.new{ |path| !File.extname(path).in?(['.js', '.css']) }, /application.(css|js)$/ ]
http://guides.rubyonrails.org/v3.2.13/asset_pipeline.html#precompiling-assets