Rails - 部署后未找到的资产

时间:2014-04-23 06:58:38

标签: ruby-on-rails deployment assets

我正在尝试部署我的第一个Rails应用程序,但是我找不到404找不到所有资产(.css,.js文件和图像)。我尝试了许多让事情发挥作用的方法,但没有任何效果。所有资产路径都是这样的:

/stylesheets/application.css

我的production.rb文件:http://pastebin.com/SeVNEZD9 我的application.html.erb,其中包含这些资产的内容如下所示:http://pastebin.com/gHkpfA8Z 感谢您的帮助。

5 个答案:

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