【问题标题】:404 static error pages in Rails, path context to public resources changes depending on request URIRails 中的 404 静态错误页面,公共资源的路径上下文根据请求 URI 变化
【发布时间】:2011-11-11 21:19:05
【问题描述】:

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

我有

/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 页面所必需的。我不确定是否提供服务

【问题讨论】:

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


    【解决方案1】:

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

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

    如果没有第一个斜杠,你有 relative 路径,但有斜杠你有你需要的 absolute 路径。

    【讨论】:

    • 谢谢,我试过了。也许令人惊讶的是,这不起作用。但是 确实有效。这实际上是有道理的,因为在 404 或 500 条件下,Rails 已经放弃了对 HTTP 服务器的请求。
    • 当你链接到http://yourhost.com/error_stylesheets/styles.css时会发生什么?
    • 这行得通。我应该说我有这个应用程序作为域上的子站点。所以我有像domain/app/route 这样的路线,并且应用程序是 Rails 应用程序的符号链接公共文件夹。
    猜你喜欢
    • 2015-11-15
    • 2021-05-16
    • 2018-02-26
    • 1970-01-01
    • 2011-07-01
    • 2023-03-09
    • 1970-01-01
    • 2016-04-22
    • 1970-01-01
    相关资源
    最近更新 更多