我正在尝试部署我的第一个Rails应用程序,但是我找不到404找不到所有资产(.css,.js文件和图像)。我尝试了许多让事情发挥作用的方法,但没有任何效果。所有资产路径都是这样的:
/stylesheets/application.css
我的production.rb文件:http://pastebin.com/SeVNEZD9 我的application.html.erb,其中包含这些资产的内容如下所示:http://pastebin.com/gHkpfA8Z 感谢您的帮助。
答案 0 :(得分:1)
在config/environments/production.rb
文件中添加
config.assets.digest = true
然后stylesheet_link_tag
会生成指纹网址。
答案 1 :(得分:0)
您需要通过在终端上运行此命令来预编译您的资产。
RAILS_ENV=production bundle exec rake assets:precompile
答案 2 :(得分:0)
部署后你应该
RAILS_ENV=production bundle exec rake assets:precompile
答案 3 :(得分:0)
由于这是您的第一个Rails应用,请让我解释一下您的问题所在:
创建资产时,它们位于
asset pipeline
。这个 是位于/app/assets
资源文件所在的文件夹 存储如果您想在生产中使用资产,有两种方法可以做到 - 第一种是动态使用资产,或者将它们用作静态资产 (这是你预编译的地方)。当你使用Heroku等喜欢的时候, 您需要使用静态资产,这就是他们为其预编译的原因 部署时的你
静态资产的问题是Rails creates fingerprints 对他们来说这些指纹基本上为它们提供了唯一的标识符 您必须使用
<%= asset_path %>
等动态引用
您的问题可能是由于您未正确访问预编译资产造成的。解决此问题的方法是使用asset tag helpers,如下所示:
#app/views/layouts/application.html.erb
<%= stylesheet_link_tag "application" %>
<%= javascriot_include_tag "application" %>
答案 4 :(得分:0)
现在看来它正在运作。我需要重新启动服务器才能应用更改。任何人都可以告诉我为什么我必须重新启动服务器来应用这些更改?我想在将来避免它。
我正在为面临类似问题的人发布我的production.rb文件:http://pastebin.com/7Uskvcuc