【发布时间】:2013-07-05 08:28:45
【问题描述】:
使用 AngularJS 应用程序提供正确的 404 的最佳方式是什么?
一点背景知识:我正在构建一个 Angular 应用程序并选择使用
$locationProvider.html5Mode(true);
因为我希望 URL 看起来自然(并且与多页“传统”网络应用程序没有区别)。
在服务器端(一个简单的 Python Flask 应用程序),我有一个包罗万象的处理程序,可以将所有内容重定向到 Angular 应用程序:
@app.route('/', defaults={'path': ''})
@app.route('/<path>')
def index(path):
return make_response(open('Ang/templates/index.html').read())
现在,我正试图弄清楚如何处理 404 错误。我见过的大多数 Angular 应用程序都执行以下操作:
.otherwise({ redirectTo: '/' })
这意味着他们无法提供正确的 404。
但是,我更愿意返回正确的 404,带有 404 状态代码(主要用于 SEO 目的)。
使用 Angular 处理 404 的最佳方法是什么?我应该不担心它并坚持一个包罗万象的事情吗?或者我应该删除所有内容并在服务器端提供正确的 404?
为清晰起见进行了编辑
【问题讨论】:
-
你想在 404 上做什么,能不能提一下你的用例
-
当访问/asdf时,应该被带到一个404页面:“对不起,你试图访问的页面不存在”。应该返回一个 404 状态码。
-
您可以注册一个响应拦截器并检查拦截器中的状态代码,如果您在 http 状态代码中找到 404,您可以使用 $location.path('path') 重定向到任何路径
标签: javascript angularjs flask http-status-code-404 angularjs-routing