1

今天,在-Tags 等中使用//server.tld/js/script.js而不是特定协议是很常见的。http://server.tld/js/script.jsscript

但我想提供一个没有任何网络服务器的静态 html 页面(即没有http://localhost:8080)。

问题是浏览器将协议相关链接解释为file:///js/script.js,我无法规避这一点,因为它是从外部服务器动态加载的。

在这种特定情况下,脚本在运行时http://connect.soundcloud.com/sdk.js加载//connect.soundcloud.com/soundmanager2/soundmanager2.js
在 html 页面中包含直接script指向的 -Taghttp://connect.soundcloud.com/soundmanager2/soundmanager2.js并不能解决问题,因为还有一些其他依赖项。

也没有办法让网络服务器运行(例如php -S localhost:8080),因为它是为不想安装任何东西的客户准备的。

那么如何在 html 文件中定义协议相对链接应该使用http://https://作为协议而不是协议file://

编辑:也许我用一个例子来解释这个
在我的html页面中我有一个脚本标签(我可以控制使用的协议)

<script src='http://example.org/some.js'></script>

并且脚本在 dom 中添加了另一个标签

<script src='//example.org/helper.js'></script>

如果我只是打开 html 文件file:///.../file.html,浏览器会认为它应该放在前面file://,以便脚本src 变得file://example.org/helper.js或类似。

并且不可能只循环遍历脚本标签并预先添加 a http://,因为脚本 ( http://example.org/some.js) 可能使用 ajax。

编辑:如果他们使用协议相关的 url,我认为没有办法为 3rd-party-scripts 设置协议,所以我把这个问题留给那些在使用 3rd- 时可能会遇到相同行为的人的提醒-派对脚本和静态 html 页面。
如果在 Windows 中像 Linux 的 Python 中一样预装网络服务器,那就太好了。

4

0 回答 0