我在我的网站的主目录中有一个404.php文件,我使用header('Location: 404.php');了一段时间,直到有人说你应该使用header('HTTP/1.0 404 Not Found');.所以我用它替换它然后添加:ErrorDocument 404 /404.php到我的apache配置文件并重新启动服务器但它不起作用.
我尝试了不同的变化,包括ErrorDocument 404 404.php和ErrorDocument 404 mywebite/404.php,但无济于事.
我的意思是不起作用是早些时候使用header('Location: 404.php');它将重定向到404.php文件,但当我用它替换header('HTTP/1.0 404 Not Found');它似乎只是跳过线而不做任何事情.它肯定不是重定向.我调用重定向的原因是因为如果无法识别$ _GET标头值,页面应为404.
我在Eclipse中集成了Tomcat 7.当我使用Eclipse启动它时,它显示Tomcat已启动并正在运行,但是当我在浏览器中访问http:// localhost:8080时,它会出现以下错误:
HTTP状态404 - /
类型状态报告
消息 /
description请求的资源(/)不可用.
Apache Tomcat/7.0.23
我尝试更改端口server.xml以防万一其他服务使用8080,但它也不起作用.我该如何解决?
我目前正在使用angularjs编写一个Web应用程序,但我认为这个问题适用于在客户端进行路由的任何客户端javascript框架(如角度所做).
在单页面应用中,处理错误网址的正确方法是什么?
查看几个主要网站,如果您在https://mail.google.com/mail/下面输入任意随机网址,我会看到Gmail会重定向到收件箱.这发生在服务器端(使用http 300代码)或客户端,具体取决于错误路径是在#字符之前还是之后.另一方面,twitter显示任何无效URL的真实HTTP 404.第三种选择是显示"软"404,纯粹的客户端错误页面.
这些解决方案似乎适合不同的情况.Twitter希望Twitter用户和推文的链接是真实的链接,因此人们可以分享它们,在新闻文章中发布它们等,因此无效链接被识别是非常重要的(如果我的推文链接断开了)我的网站,一个简单的爬行会告诉我).另一方面,在gmail中,您不应该将链接分享到您的收件箱中,我甚至不确定链接是否真的是永久性/持久性的:似乎网址更新主要用于浏览器历史记录导航的目的.单页应用.给出软错误的第三种方法可能适用于类似于gmail的情况,但是没有合理的"默认"页面.
经过这么长时间的介绍,这里有一些具体的问题:
javascript singlepage http-status-code-404 angularjs single-page-application
ASP.NET Core API控制器通常返回显式类型(默认情况下,如果您创建一个新项目),如下所示:
[Route("api/[controller]")]
public class ThingsController : Controller
{
// GET api/things
[HttpGet]
public async Task<IEnumerable<Thing>> GetAsync()
{
//...
}
// GET api/things/5
[HttpGet("{id}")]
public async Task<Thing> GetAsync(int id)
{
Thing thingFromDB = await GetThingFromDBAsync();
if(thingFromDB == null)
return null; // This returns HTTP 204
// Process thingFromDB, blah blah blah
return thing;
}
// POST api/things
[HttpPost]
public void Post([FromBody]Thing thing)
{
//..
}
//... and so on...
}
Run Code Online (Sandbox Code Playgroud)
问题是return null;- 它返回HTTP 204:成功,没有内容.
然后,许多客户端Javascript组件将其视为成功,因此代码如下:
const …Run Code Online (Sandbox Code Playgroud) c# http-status-code-404 asp.net-core-mvc asp.net-core asp.net-core-webapi
是否有可能创建一个捕获所有的最终路由...并将用户弹回到ASP.NET MVC中的404视图?
注意:我不想在我的IIS设置中进行此设置.
我正在使用WebAPI 2中的服务,端点当前返回一个IHttpActionResult.我想返回一个状态代码422,但因为它不在HttpStatusCode枚举中,所以我不知道如何发送它,因为所有的构造函数都需要一个参数HttpStatusCode
现在,我正在回归BadResult(message),但返回422+消息对我的客户来说会更具描述性和实用性.有任何想法吗?
我正在使用IIS 7.5,我无法加载较少的文件,因为它给出了404错误.
HTML:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>Less Tutorial</title>
<link rel="stylesheet/less" href="style.less" />
<script src="less-1.0.41.min.js"></script>
</head>
<body>
<div id="container">
<a href="#">My Anchor</a>
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
减:
@primary_color: green;
#container {
width: 200px;
height: 200px;
background: @primary_color;
}
Run Code Online (Sandbox Code Playgroud) 使用AngularJS应用程序提供正确404的最佳方法是什么?
一点背景:我正在构建一个Angular应用程序,并选择使用
$locationProvider.html5Mode(true);
Run Code Online (Sandbox Code Playgroud)
因为我希望网址显得自然(并且与多页"传统"网络应用无法区分).
在服务器端(一个简单的Python Flask应用程序),我有一个全能的处理程序,可以将所有内容重定向到角度应用程序:
@app.route('/', defaults={'path': ''})
@app.route('/<path>')
def index(path):
return make_response(open('Ang/templates/index.html').read())
Run Code Online (Sandbox Code Playgroud)
现在,我正在试图弄清楚如何处理404错误.我见过的大多数Angular应用程序都执行以下操作:
.otherwise({ redirectTo: '/' })
Run Code Online (Sandbox Code Playgroud)
这意味着他们无法提供适当的404.
但是,我更愿意返回一个正确的404,带有404状态代码(主要用于搜索引擎优化目的).
使用Angular处理404s的最佳方法是什么?我不应该担心它并坚持一个全能的?或者我应该删除catch-all并在服务器端提供正确的404?
编辑清楚
javascript flask http-status-code-404 angularjs angularjs-routing
我对Django的staticfiles应用程序有一些小问题.
我已经添加了
'django.contrib.staticfiles',
Run Code Online (Sandbox Code Playgroud)
到我的INSTALLED_APPS并添加了
STATIC_URL = '/static/'
STATIC_ROOT = '/Users/kevdotbadger/django/mylook/static/'
Run Code Online (Sandbox Code Playgroud)
到我的settings.py档案.
我的所有静态文件都位于STATIC_ROOTMac上的文件夹中.
现在,在我使用的模板中
{{ STATIC_URL }}
Run Code Online (Sandbox Code Playgroud)
正确呈现的/static/.
然而
{{ STATIC_URL }}css/style.css
Run Code Online (Sandbox Code Playgroud)
导致404错误.我正在使用'runserver'命令作为服务器.
有什么我想念的吗?
使用Intergrated .net 4.0应用程序池创建了一个新的IIS7网站.
以.aspx结尾的网址会显示自定义404其他任何内容都会显示蓝色服务器错误页面"HTTP错误404.0 - 未找到您要查找的资源已被删除,名称已更改或暂时不可用." (所以与IE无关)
<customErrors redirectMode="ResponseRewrite" mode="On" defaultRedirect="/pages/404.aspx" />
</system.web>
<system.webServer>
<httpErrors >
<remove statusCode="404" subStatusCode="-1" />
<error statusCode="404" prefixLanguageFilePath="" path="/pages/404.aspx" responseMode="ExecuteURL" />
</httpErrors>
</system.webServer>
Run Code Online (Sandbox Code Playgroud)
也试过了
<httpErrors existingResponse="PassThrough" />
Run Code Online (Sandbox Code Playgroud)
但这只是导致空洞的回应.
我只找到了一个对执行appcmd来测试自定义http错误处理的有用性的引用,但这里是结果.
C:\Windows\System32\inetsrv>appcmd list config "http://mysite/file.notexist" -section:httpErrors
<system.webServer>
<httpErrors>
<error statusCode="401" prefixLanguageFilePath="%SystemDrive%\inetpub\custer
r" path="401.htm" />
<error statusCode="403" prefixLanguageFilePath="%SystemDrive%\inetpub\custer
r" path="403.htm" />
<error statusCode="404" prefixLanguageFilePath="%SystemDrive%\inetpub\custer
r" path="404.htm" />
<error statusCode="405" prefixLanguageFilePath="%SystemDrive%\inetpub\custer
r" path="405.htm" />
<error statusCode="406" prefixLanguageFilePath="%SystemDrive%\inetpub\custer
r" path="406.htm" />
<error statusCode="412" prefixLanguageFilePath="%SystemDrive%\inetpub\custer
r" path="412.htm" />
<error statusCode="500" prefixLanguageFilePath="%SystemDrive%\inetpub\custer …Run Code Online (Sandbox Code Playgroud) angularjs ×2
c# ×2
javascript ×2
.net ×1
asp.net-core ×1
asp.net-mvc ×1
django ×1
eclipse ×1
flask ×1
header ×1
iis ×1
iis-7 ×1
jsp ×1
less ×1
php ×1
python ×1
routes ×1
singlepage ×1
static ×1
tomcat ×1