【问题标题】:Customizing 404 page自定义 404 页面
【发布时间】: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) 缺少一个'。无论如何,我同意这是服务器端要做的事情:stackoverflow.com/questions/3397868/…

标签: javascript jquery html ajax rstudio


【解决方案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 但它不起作用
猜你喜欢
  • 2010-11-04
  • 2012-10-26
  • 2011-08-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-01
  • 2017-09-23
相关资源
最近更新 更多