html - Rails:图像存在但即使在开发中渲染也不会在生产中渲染
问题描述
有类似的问题this , this , this , and this,但它们并没有解决问题。
我们有一个在开发环境中渲染的本地存储图像。
但是,在生产中,图像不会渲染。从浏览器访问图像 URL 会被重定向到 404 页面,因为由于某种原因找不到图像。同一目录中的其他图像可以毫无问题地呈现。
细节 :-
将两个图像 URL 直接输入浏览器会产生不同的结果。图像 1 将渲染,但图像 2 不会。图 2 重定向到 404 页面。
这不是缓存问题,隐身渲染会失败。
两个图像都存在于目录中。
这似乎发生在新图像上,尽管模式不清晰(即,一些新图像渲染但并非全部渲染)。
图像渲染代码:
<img class="thumbnail" src="<%= design["thumbnailURL"] %>">
哪里design["thumbnailURL"]
是图像的相对 URL(是的,确实存在)。我们使用
Rails 3.2
和 Cloudflare。服务器堆栈:
- 乘客 AppPreloader 版本:6.0.2
- 实例:ElIQgS48 (nginx/1.15.8 Phusion_Passenger/6.0.2)
- 红宝石版本:红宝石2.1.2p95
- 操作系统:CentOS Linux release 7.6.1810 (Core)
- PHP 7.0.33
- 服务器版本:5.5.60-MariaDB MariaDB 服务器
- 后缀 mail_version = 2.10.1
- Dovecot 版本:2.2.36 (1f10bfa63)
解决方案
我只是看了你的例子https://www.test.com/designs/thumbnails/foo/bar1.jpg然后我检查了你的图像标签,我看到<img src="img/test.com-logo.png" alt="Test.com create tests">
我能够将它更新到<img src="/img/test.com-logo.png" alt="Test.com create tests">
并且我能够看到你的徽标.
你可以更新你的erb from <img class="thumbnail" src="<%= design["thumbnailURL"] %>">
to<img class="thumbnail" src="/<%= design["thumbnailURL"] %>">
或者你可以确保在值中包含“/”design["thumbnailURL"]
我希望这会有所帮助
推荐阅读
- ruby-on-rails - 从服务加载模块
- go - 在 go 模块中访问本地包(go 1.11)
- java - 将用户输入存储在字符串数组中
- java - 如何在 Liferay 7 中将 ArrayList 集从 java 传递到 jsp
- javascript - DeprecationWarning: Collection#find: 传递一个函数
- android - 为什么这个应用程序会因运行时错误而崩溃?
- arrays - REQL 更新数组第 n 个元素的属性
- wordpress - 多个 WordPress 网站不断在同一主机上被黑客入侵
- windows - 如何从 Elixir 启动 Windows 程序?
- python - 如何通过在 python 中使用线程在另一个函数的后台运行一个函数?