我正在将Rails 3.2.17
升级为Rails 4.0.0
,我的应用无法再检索到它的资产。
如果我访问页面源代码,我可以看到应用程序正在尝试从以下位置加载css:
/stylesheets/jackapp/application.css?body=1
如果我删除'样式表'我在下面看到了样式表:
/jackapp/application.css?body=1
尝试加载application.js时的行为相同。它试图获得
/javascripts/jackapp/application.css?body=1
但是js位于:
/jackapp/application.css?body=1
有什么想法吗?为什么Rails 4附加了样式表'走那条路?
我没有更改application.html.erb
:
<!DOCTYPE html>
<html>
<head>
<%= stylesheet_link_tag "application", :media => "all" %>
<%= stylesheet_link_tag "print.css", media: "print" %>
<title><%= yield :title %> - GOV.UK</title>
<%= yield :head %>
</head>
我还从group :assets
删除了Gemfile
并替换了
if defined?(Bundler)
# If you precompile assets before deploying to production, use this line
Bundler.require *Rails.groups(assets: %w(development test))
# If you want your assets lazily compiled in production, use this line
# Bundler.require(:default, :assets, Rails.env)
end
使用:
Bundler.require(:default, Rails.env)
此外,我已按照此说明操作:
http://railscasts.com/episodes/415-upgrading-to-rails-4
我没有任何失败的测试。
如何告诉应用将资源加载到正确的路径? 感谢。
杰克
答案 0 :(得分:1)
我必须在资源编译到application.rb文件的路径中添加一个前导斜杠
config.assets.prefix = "jackapp"
为:
config.assets.prefix = "/jackapp"
OOH .. RAILS。