【问题标题】:Heroku - Custom 404 Page using ERROR_PAGE_URL not workingHeroku - 使用 ERROR_PAGE_URL 的自定义 404 页面不起作用
【发布时间】:2018-09-16 09:04:00
【问题描述】:

对于我的网站,我正在尝试创建一个自定义 404 错误页面。

在 Heroku CLI 中使用以下命令:

heroku config:set \ 
ERROR_PAGE_URL=//MyWebsiteName.com/public/404.html

错误页面设置成功。但是,当我加载我的网站没有的页面时,例如 www.MyWebsiteName.com/3213123,浏览器不会加载我的 404.html 自定义错误消息。相反,它只是给出一个通用的 404 响应:

404 error, not my custom 404 page

谁能解释我做错了什么? 我正在关注此链接作为参考: https://devcenter.heroku.com/articles/error-pages#customize-pages

谢谢,

【问题讨论】:

  • “浏览器没有加载我的 404.html 自定义错误信息”——它做了什么?
  • 嗨,克里斯,谢谢你的回复,我会附上它的截图
  • 您确定您配置了正确的 Heroku 应用程序吗? http://MyWebsiteName.com/public/404.html 是否在浏览器中正确加载?
  • 是的,该页面确实存在于我的网站上。我将尝试在 AWS S3 上保存我的自定义 404 页面,看看是否可行。
  • 我仍然没有解决这个问题。如果有人知道,请告诉我!

标签: heroku server http-status-code-404 heroku-cli


【解决方案1】:

对于 Heroku 上的 php 应用程序,可以通过在根目录中创建一个 .htaccess 文件来设置错误页面(或者如果您已经创建了文件,则将下面的行添加到文件中)并在那里设置 404。

.htaccess

ErrorDocument 404 /my-404-page.php

推送到 Heroku,这就是您所需要的(当然,假设您还创建了一个“my-404-page.php”)。

通过设置 > 配置变量设置此错误页面也对我不起作用。对我来说,这很有效。

【讨论】:

    【解决方案2】:

    只有 Heroku 级别的错误会使用 ERROR_PAGE_URL。 404 错误页面是应用程序的责任。

    来自https://devcenter.heroku.com/articles/error-pages

    其他错误,例如应用程序错误(404 或 500),将显示您应用程序的错误页面,而不是 Heroku 错误页面。只有导致无响应或格式错误的系统级错误才会显示此处讨论的 Heroku 错误页面。

    【讨论】:

      【解决方案3】:

      由于未接受任何答案,这是我的答案

      你所描述的是一条缺失的路线。

      缺少路由是您的应用程序的责任。它可以在您自己的代码中修复,方法是在您的 server.jsApp.js(例如,如果您使用 React)中创建一个通用路由,您可以在其中提供您自己的 404 页面。

      虽然更理想的解决方案是将用户路由到有意义的地方,例如 /landing 页面或用户 /home 页面。

      【讨论】:

        猜你喜欢
        • 2011-12-23
        • 2014-01-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-04-17
        相关资源
        最近更新 更多