自定义 404 页面
Posted
技术标签:
【中文标题】自定义 404 页面【英文标题】:Customizing 404 page 【发布时间】:2018-11-16 00:10:24 【问题描述】:我有以下 javascript 代码,我将旧链接动态重定向到新链接。
有时 newLink 不存在,而不是获取 404 页面,如果找不到 URL,我想自定义我自己的页面。
知道如何在我的代码中添加此条件吗?
<script>
setTimeout(function()
$('a[href="oldLink"]').attr('href','dir/newLink)
, 1000);
</script>
编辑:我在 Rstudio 上运行此代码,我是 javascript 新手,我没有服务器,因为我在本地使用 Rmarkdown 生成 html 页面。
谢谢!
【问题讨论】:
这是服务器端的典型任务。 您可以从您的网络服务器设置中编辑您的默认 404 页面 实际上我在 Rstudio 上运行这段代码,我是 javascript 新手,我没有服务器,因为我在本地使用 Rmarkdown 生成 html 页面 Javascript 正在客户端运行,您的客户端不知道服务器何时运行。唯一的方法是通过 ajax 请求测试服务器是否可用 只是说,.attr('href','dir/newLink)
缺少一个'
。无论如何,我同意这是服务器端要做的事情:***.com/questions/3397868/…
【参考方案1】:
您可以通过以下代码实现。有一个缺点是您必须始终检查链接是否存在,如果对您来说可以,那么这对您来说是完美的解决方案。
$('body').append('<div id="temp-div" style="display:none"></div>');
var url = 'dir/newLink';
$('#temp-div').load(url, function (a, b, c)
if (c.status == 404)
$('a[href="oldLink"]').attr('href', 'YOUR_CUSTOM_404_LINK');
else
$('a[href="oldLink"]').attr('href', url);
$('#temp-div').remove();
);
【讨论】:
感谢您的回答,这似乎很连贯,我尝试了您的代码以获取不存在的链接,但我总是出现 404 错误页面。可能是 c.status 可能有其他错误值? 404 表示找不到页面/链接 - 对于不存在的链接,它将始终给出 HttpStatus 404 我在本地工作,我没有本地主机,我有静态 html 文件夹,这是我的目录。即使使用静态 HTML 页面,c.status 也总是应该工作吗? Else 可以工作,但 IF 条件不正常(如果找不到页面,我会将链接重定向到 google 页面,但我总是找到 404 页面) 也许条件应该是该目录中是否存在 url 我尝试了 url.exists() 而不是 c.status ==404 但它不起作用以上是关于自定义 404 页面的主要内容,如果未能解决你的问题,请参考以下文章