1

我目前正在 Github 上为使​​用 W3Schools 脚本的 Github Pages 创建一个 repo。我的 index.html 代码如下所示:

<!DOCTYPE html>
<html>
    <head>
        <title>[my name] Witness Project</title>
        <script src="http://w3schools.com/lib/w3data.js"></script>
    </head>
    <body>
        <div w3-include-html="common.html"></div>
        <div id="main">
            <h1 style="display:block">This will be my Witness Project soon!</h1>
        </div>
    </body>
    <script>
    w3IncludeHTML();
    </script>
</html>

在 common.html 中,有页眉和页脚的代码:

<link rel="stylesheet" href="common.css">
<div id="header">
    <nav>
        <button type="button"><a href="index.html">Home</a></button>
        <button type="button"><a href="#">Coming Soon</a></button>
        <button type="button"><a href="#">Coming Soon</a></button>
        <button type="button"><a href="#">Coming Soon</a></button>
        <button type="button"><a href="#">Coming Soon</a></button>
    </nav>
</div>

<div id="footer">
    Created as part of <i>The Witness Project</i> at The Key School<br>
    <i>Content of website © 2016 by [my name]</i>
</div>

我正在利用此处描述的脚本来导入其他 HTML 文件。我不认为CSS是相关的。然而,当我加载我的 Github Pages 页面时,我只看到 index.html 中的元素。但这不是我的错,因为当我从本地文件加载页面时,看起来就像我期望的那样。

图片:
在线: 本地: 发生了什么事?不能在 Github 上使用外部 JS 吗?在线的
当地的

编辑:我检查了控制台并收到此消息: 错误

4

1 回答 1

3

你得到的错误Blocked loading mixed active content "http://w3schools.com/lib/w3data.js",表明你有“混合内容”——也就是说,一些内容被加载了https,而其他内容被不安全地加载了http

通过 http 加载这样的脚本会使它容易在发送者和接收者之间被篡改,因此它被认为是一种安全风险,并且(某些)浏览器会阻止它。

当您链接到脚本时,您可以在<script src="//w3schools.com/lib/w3data.js"></script>没有协议的情况下使用,并且将使用用于加载页面的任何协议(http 或 https)加载 scrpt。这将消除错误。

不幸的是,我进行了测试https://w3schools.com/lib/w3data.js,它(首先)给了我一个证书错误,然后是 404 ... w3schools 没有通过 https 提供该脚本。
在这种情况下,您最好的选择是在本地保存副本并链接到该副本,而不是 w3schools CDN。

于 2016-10-27T19:17:18.783 回答