html - Rails 4 公共(public) 404/500 错误页面正在请求路径错误的图像资源

标签 html css ruby-on-rails model-view-controller asset-pipeline

我在我的应用程序的公共(public)文件夹中构建了一些错误页面(404、500 等)。我知道这些在 Assets 管道之外,所以我将每个构建为一个独立的 html 文件,头部有 CSS。

这些错误页面有几个图像(背景和 Logo )。两者都以通常的方式加载(不使用任何 rails 助手):

<img src="Checklick-Logo-White-Transparent.png" alt="Checklick Logo" style="width: 100%">

background: url("Checklick-Cloud-Background-High.jpg") no-repeat center top;

在生产环境中,当我尝试加载这些页面 (app.checklick.com/500.html) 时,它们加载得很好。

但是,当我在应用程序上遇到实际错误,并且加载了相同的错误页面时,出于某种原因,图像路径会附加一个 Controller 名称(即它们成为 app.checklick.com/programs/Checklick-Logo-White-Transparent.png)。然后 Controller 尝试使用该图像文件名作为参数执行操作,这会导致另一个错误。当然,浏览器无法呈现任何图像,因此错误页面本身看起来很糟糕。

知道在实际错误期间如何/为什么将 Controller 名称添加到图像请求吗?

最佳答案

事实证明,所有的错误都是我没有在我的公共(public) 404/500 html 页面上使用图像的根相对路径。

我变了

<img src="Checklick-Logo-White-Transparent.png" alt="Checklick Logo" style="width: 100%">

<img src="/Checklick-Logo-White-Transparent.png" alt="Checklick Logo" style="width: 100%">

改变了

background: url("Checklick-Cloud-Background-High.jpg") no-repeat center top;

background: url("/Checklick-Cloud-Background-High.jpg") no-repeat center top;

现在,无论错误页面的来源是什么,图像都可以正常加载。例如,我可以加载 app.checklick.com/500 或 app.checklick.com/programs/500 并且仍然可以加载图像。

关于html - Rails 4 公共(public) 404/500 错误页面正在请求路径错误的图像资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32142865/

相关文章:

html - 为什么我的 CSS3 跑马灯动画会重新启动?

php - 单击链接时将数组中的项目存储在 SESSION 中

html - 控制相邻DIV到IMG标签的高度

html - 删除输入标签和跨度标签之间的间隙

javascript - 显示没有 "hitbox"的元素(不接受鼠标/触摸输入)

html - 如何垂直对齐带有两个按钮的图标?

javascript - RAILS 和 Javascript 问题

sql - ActiveRecord 在同一 bool 值的变体上返回不同的结果

javascript - Rails Ajax : Search still refreshing the page after click

css - 试图在页面底部居中一个 breakout div