如果链接到联机css文件已死,请使用本地css文件

时间:2016-11-05 16:09:39

标签: javascript html css

问题:

我正在使用w3.css(如果您现在进入w3schools.com网站已停止进行维护)以便为我的网站设置样式。这里的问题是w3schools.com会不时出现问题。

然后我的网站看起来很令人毛骨悚然,我不需要那个。

所以我在计算机上有w3.css的本地副本,直到持有该网站的服务器。

在线:

<link rel="stylesheet" href="http://www.w3schools.com/lib/w3.css">

本地:

<link rel="stylesheet" href="../css/w3.css">

问题:

我怎么知道我指向w3schools的链接什么时候已经死了,所以我可以使用本地w3.css文件。我怎么能这样做?

1 )检测是否损坏

2 )在加载网站之前使用本地css

最后

大公司正在为此做些什么?如果3-4 Web服务失败,整个公司都会倒闭.....

我是网络开发新手。谢谢...

编辑:(我有点想法)

加载local(...site in on a server,that local i mean)w3schools文件,但会增加网站加载次数......

3 个答案:

答案 0 :(得分:1)

它可以用PHP。我还没有对它进行测试,但它应该可以工作。

将其放在Comparator.comparing标记内。

<head>

参考:https://css-tricks.com/snippets/php/check-if-website-is-available/

答案 1 :(得分:1)

检查w3.css是否正常工作你可以使用这样的东西。而不是src把w3.css图像的标识或东西。

function checkImage (src, up, down) {
    var img = new Image();
    img.onload = up; 
    img.onerror = down;
    img. src = src;
}

checkImage( "https://www.google.co.in/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png", function(){ alert("up"); }, function(){ alert("down"); } );

答案 2 :(得分:0)

为什么不像这样使用JS?

<script type="text/javascript">
$.each(document.styleSheets, function(i,sheet){
  if(sheet.href=='http://code.jquery.com/mobile/1.0b3/jquery.mobile-1.0b3.min.css') {
    var rules = sheet.rules ? sheet.rules : sheet.cssRules;
    if (rules.length == 0) {
      $('<link rel="stylesheet" type="text/css" href="path/to/local/jquery.mobile-1.0b3.min.css" />').appendTo('head');
    }
 }
})
</script>

$.each(document.styleSheets)遍历文档的styleSheets。查看https://developer.mozilla.org/en-US/docs/Web/API/Document/styleSheets了解详情。

然后我们专门检查http://code.jquery.com/mobile/1.0b3/jquery.mobile-1.0b3.min.css是否可访问。我们使用三元运算符var rules = sheet.ruless ? sheet.rules : sheet.cssRules;三元运算符类似于if语句,如果sheet.rules计算结果为true,则规则变为sheet.rules。如果它是假的,它将成为sheet.cssRules。

最后,我们检查rules中是否有任何内容。如果还没有,我们会回退到我们的本地样式表解决方案并将其添加到文档的<head></head>

虽然使用非常慢的加载CDN时可能会遇到问题。或者,您可以使用onerror事件