html - rails : image exists but is not rendered in production even though rendered in development

标签 html ruby-on-rails image ruby-on-rails-3 browser

类似的问题还有this , this , this , 和 this , 但他们没有解决问题。

我们有一个在开发环境中呈现的本地存储图像。

但是,在生产中,图像不会呈现。从浏览器访问图像 URL 会被重定向到 404 页面,因为由于某种原因找不到图像。同一目录中的其他图像可以毫无问题地呈现。

详细信息:-

  • 图片 1 网址:https://test.com/designs/thumbnails/foo/bar1.jpg

  • 图片 2 网址:https://test.com/designs/thumbnails/foo/bar2.jpg

  • 将两个图像 URL 直接输入浏览器会产生不同的结果。图片 1 将渲染,但图片 2 不会。图 2 重定向到 404 页面。

  • 这不是缓存问题,在隐身模式下渲染失败。

  • 两个图像都存在于目录中。

  • 这似乎发生在新图像上,尽管模式不明确(即,一些新图像渲染但并非全部渲染)。

  • 图像渲染代码:<img class="thumbnail" src="<%= design["thumbnailURL"] %>">其中 design["thumbnailURL"]是图像的相对 URL(确实存在)。

  • 我们使用 Rails 3.2和 Cloudflare。

  • 服务器堆栈:

    • Passenger AppPreloader 版本:6.0.2
    • 实例:ElIQgS48 (nginx/1.15.8 Phusion_Passenger/6.0.2)
    • Ruby 版本:ruby 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)

最佳答案

如果您将文件托管在公用文件夹中并且不使用 Assets 管道,那么直接提供静态文件通常是 HTTP 网络服务器(apache、nginx ...)的工作。他们做得又好又快。

请提供有关您的生产托管设置(网络服务器、配置等)的更多详细信息,以及 Rails 为您的图片生成的 url。我将使用相关的网络服务器配置相应地更新答案,以便直接提供您的静态文件。

关于html - rails : image exists but is not rendered in production even though rendered in development,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60481426/

相关文章:

html - 如何在 jinja 2 中为每个循环水平显示 Bootstrap 卡?

ruby-on-rails - counter_cache 列返回 0 的 Rspec 测试

javascript - 根据js中的颜色的数字/百分比填充图像

python - 如何使用 Python OpenCV 定义阈值以仅检测图像中的绿色对象?

html - 对齐模态框中所有卡片的内容

html - 在非全宽元素中设置全宽动态元素样式的最佳方式是什么?

html - 如何在网站中获取填充整个页面的渐变背景

javascript - 单击时如何从链接中添加和删除类名?

ruby-on-rails - 从 Rails 生成 PDF

java - 将图像转换为按钮数组