Javascript未预编译

时间:2014-11-18 10:08:00

标签: ruby-on-rails ruby-on-rails-3

我在预编译资产后在生产模式下测试我的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

1 个答案:

答案 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