【发布时间】:2018-08-09 12:32:16
【问题描述】:
我的 rails 应用正在加载我之前添加的图像。旧的都是从 /assets 加载(实际上是加载)我添加的新图像试图从 /images 而不是 /assets 加载(并且不起作用)
我的 rails 应用程序在带有 Nginx 和乘客的 Ubuntu 16 上运行。
我获取它们的方法是将文件名以 .png 结尾(例如:picture.png)输入到 simple_form 字符串输入中。
它是从这个渲染的:<%= image_tag("#{post.thumbnail_link}", :alt => "#{post.title}", :width => 320, :height => 180, class: "news-object") %>
并通过这个帖子显示:<%= image_tag("#{@post.thumbnail_link}", :alt => "#{@post.title}", class: "inpost-thumb") %>
之前添加的也加载了一长串看似随机的数字/字母。 - 新的没有。
我认为唯一不同的是,新图像最近已推送到服务器,而当我将 rails 应用程序放到生产服务器上时,旧图像可能已经存在。
我尝试在config/initializers/assets 中执行Rails.application.config.assets.precompile += ["*.png"],但这不起作用。
图像在本地主机上的开发中加载良好。
我希望像旧的那样从
/assets加载图像。 新旧都在/assets/images
【问题讨论】:
-
碰巧你在 Heroku 上吗?
-
@NMPennypacker 不,我使用的是 Digital Ocean Ubuntu 16 droplet。
-
在你的机器上试试这个:运行
RAILS_ENV=production bundle exec rake assets:clobber然后RAILS_ENV=production bundle exec rake assets:precompile。添加并提交更改并运行部署 -
@NMPennypacker 谢谢!实际上,我只是直接通过我的 ubuntu 服务器运行它。我猜它只是破坏了它,直到它起作用,哈哈。请回答这个问题,以便我奖励您的帮助。
-
酷。我添加了一个答案。如果你在你的机器上这样做,你可能不必设置
RAILS_ENV。如果它在生产中工作,您仍然应该在本地预编译并将更改提交到版本控制
标签: ruby-on-rails ruby