将Rails应用程序上传到heroku后图像被破坏

Jac*_*ham 8 ruby-on-rails heroku asset-pipeline

在当地显示很好.但是当我上传到Heroku时,我得到以下内容:

在此输入图像描述

<%= image_tag('logo-red.png') %>
Run Code Online (Sandbox Code Playgroud)

它位于资产/图像/

我没有使用Turbolinks.我是否需要在Heroku上运行命令来解决这个问题,或者是否存在一些我缺少的配置设置?

编辑1:试过跑步 heroku run rake assets:precompile RAILS_ENV=production

编辑2:heroku员工的回复:

看起来您的应用正在正确编译该图像:〜/ public/assets $ pwd/app/public/assets~/public/assets $ ls | grep logo-red logo-red-a07050d882e1dba431cef2130d39f929c611eaf8b0ec3c50db0742ddccb14d93.png

编辑3:参见附件截图 在此输入图像描述

Phi*_*899 7

尝试在本地计算机上运行:

rake assets:precompile
rake assets:clean
Run Code Online (Sandbox Code Playgroud)

然后提交并推送到heroku.

还要检查您的production.rb文件并确保与编译或预编译相关的所有内容都为true而不是false,即:

config.serve_static_assets = true
config.assets.compile = true
Run Code Online (Sandbox Code Playgroud)

另外,确保rails_12factor在你的gemfile中,如下所示:

gem 'rails_12factor', group: :production
Run Code Online (Sandbox Code Playgroud)


Ric*_*eck 2

之前在 Heroku 上遇到过这个问题 - 我们通过precompilingHeroku 本身的资产解决了它:

$ heroku run rake assets:precompile RAILS_ENV=production
Run Code Online (Sandbox Code Playgroud)

我知道当您将存储库推送到 Heroku 时就完成了;这是那些怪癖之一,如果您在他们的服务器上编译资产,似乎就可以解决这个问题。

只要确保是RAILS_ENV生产环境,您也可以在本地预编译:

$ rake assets:precompile RAILS_ENV=production