我正在使用nginx服务器和乘客运行我的应用程序,
ActionView::Template::Error (ui.jqgrid isn't precompiled):
21: <%= stylesheet_link_tag "new" %>
22: <%= stylesheet_link_tag "jquery-ui-1.8.16.custom.css" %>
23: <%= stylesheet_link_tag "buttons"%>
24: <%= stylesheet_link_tag "ui.jqgrid"%>
25: <%= stylesheet_link_tag "jquery.multiselect.css"%>
26: <%= stylesheet_link_tag "jquery.multiselect.filter.css"%>
我已经预编译了所有资产。我在application.rb文件中包含以下代码
config.assets.precompile << Proc.new do |path|
if path =~ /\.(css|js)\z/
full_path = Rails.application.assets.resolve(path).to_path
app_assets_path = Rails.root.join('app', 'assets').to_path
if full_path.starts_with? app_assets_path
puts "including asset: " + full_path
true
else
puts "excluding asset: " + full_path
false
end
else
false
end
end
我public/assets
可以查看其编译版本,但我仍然收到文件未预编译的消息。
public/assests/ui.jqgrid-4a84577046aa358c9ee125bf6a1a85de.css
public/assests/ui.jqgrid-4a84577046aa358c9ee125bf6a1a85de.css.gz
public/assests/ui.jqgrid.css
public/assests/ui.jqgrid.css.gz
更新 我的manifest.yml
ui.jqgrid.css: ui.jqgrid-4a84577046aa358c9ee125bf6a1a85de.css
ui.multiselect.css: ui.multiselect-18d6d97e6b62659bfd94b81d54ed7ec0.css
在我的本地计算机上,它工作正常,但是当我在生产服务器(nginx + passenger)上部署我的代码时崩溃。
请建议......
答案 0 :(得分:1)
当您包含CSS或JS文件时,如果该文件名包含点,则它假定它是文件扩展名,这里假设jqgrid
为文件扩展名,
所以只需将<%= stylesheet_link_tag "ui.jqgrid"%>
更改为
<%= stylesheet_link_tag "ui.jqgrid.css"%>
它有效!!!