如果缺少所需的css,则加载备用css



我正在使用Mindscape Workbench来最小化我的scs文件。我的页面设置为使用*.min.css文件。在随机时间,min文件不会与系统的其他部分一起发布。

我有很多css文件,不想在每次发布后手动检查每个文件。

更新:

  • 我希望这是一个运行时修复。也就是说,如果浏览器找不到所需的css,它就无法找到完整的css
  • 当我修改和发布文件时,这个问题永远不会发生。然而,我们有很多人在开发解决方案并更新git存储库。不知怎的,一些用户无意中删除了*.min.css文件。这绝对不是故意的,也不应该发生

有没有一种方法可以指定我想要*.min.css文件,但如果它丢失了,则改为加载*.css?

我意识到最好防止这个问题,但我的问题特别与故障保护的可能性有关。我的应用程序是由我的用户在他们自己的服务器上发布的,所以我无法控制他们的操作,有这样的选项会让我有更多的控制和安全。

更新2:

另一个选项是自动工具,以确保所有*.min.css文件都包含在最新的出版物中。理想情况下,它会找到所有*.scss文件,并验证*.min.css是否存在,如果缺少,则会引发一个标志。

听听@DavidG的评论,解决发布问题如果真的真的不是一个选项,我想下一个最好的办法是让你的开发人员更改捆绑/缩小系统,这样它就可以适当地回退到未合并的文件。我想。

然而,如果你必须破解这个问题,例如,如果你只是想暂时有一个bookmarklet来解决这个问题,你可以使用这个答案的衍生产品。类似这样的东西:

var links = document.querySelectorAll('head link[href*=".min.css"]');
for (var i = 0; i < links.length; i++) {
    var newLink = document.createElement("link");
    newLink.href = links[0].href.replace(".min.css", ".css");
    newLink.type = "text/css";
    newLink.rel = "stylesheet";
    newLink.media = "screen,print";
    var head = document.getElementsByTagName("head")[0];
    head.insertBefore(newLink, head.firstChild);
}

不过不要考虑在生产场景中使用它。如果你这样做,时空连续体将被撕裂,这个世界上所有剩下的独角兽都将被吸入深渊,可能还有任何在生产中使用过这个代码的人。当然,我们不希望这样。

最新更新