ruby-on-rails - Rails 中的 404 静态错误页面,公共(public)资源的路径上下文根据请求 URI 变化

标签 ruby-on-rails error-handling http-status-code-404 static-pages

我正在研究覆盖 RAIlS_ROOT/public 中的样板 404 Rails 页面。这是在 Pasenger 上托管的 Rails 3.1.1。我注意到 html 文档中的路径在生产环境中的 Controller 资源路径内的路由上松散了上下文。这可能是基本的东西,但想把它放在那里。

我有

/public /public/404.html
/public/error_stylesheet/styles.css
/public/error_images/image.jpg



404.html 有对资源的引用
<link href="error_stylesheets/styles.css" rel="stylesheet" type="text/css" />  
<img src="error_images/errorpageheader.jpg">

例如,
如果我要求 http://app/wrongurlname
我的 404.html 加载资源 err_stylesheets 和 err_images 文件夹被看到和检索。

如果我要求
http://app/controller/wrong或者
//应用程序/错误/错误
404 页面加载,但看不到资源。

我可能对覆盖 ApplicationController 或路由的行为不感兴趣,这似乎是服务 erb 页面所必需的。我不确定是否服务

最佳答案

也许,您应该尝试这种路径:

<link href="/error_stylesheets/styles.css" rel="stylesheet" type="text/css" />  
<img src="/error_images/errorpageheader.jpg">

没有第一个斜线,你有 relative路径,但使用斜线你有一个 absolute你需要的路径。

关于ruby-on-rails - Rails 中的 404 静态错误页面,公共(public)资源的路径上下文根据请求 URI 变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8100096/

相关文章:

ruby-on-rails - rails 。保存时更新模型属性

MySQL:用户 'root@localhost' 的访问被拒绝(使用密码:NO)

ruby-on-rails - rails :method=>:patch doesn't work

.net - 经典ASP中的自定义错误处理

php - Warning : mysql_result(). 无法解决

ruby-on-rails - 如何从 Rails Controller 异步运行 ruby​​ 脚本?

node.js - 事件.js :167 throw er;//Unhandled 'error' event

.htaccess - 使用位于子目录中的 404 ErrorDocument

go - 1.6之后go版本REST端返回404

web-services - Web 服务和 HTTP 协议(protocol) : 404