【问题标题】:Script tag is loading from file:/// instead of http://脚本标签从 file:/// 而不是 http:// 加载
【发布时间】:2015-03-05 23:36:32
【问题描述】:

我正在处理一个简单的 HTML 测试页面。我用 Chrome 版本 40.0.2214.115 打开它。为了测试代码,我正在从我的工作场所加载一个 js 文件。

但是,我加载的文件尝试通过脚本标签加载其他 js 文件,但没有指定 http:// 。这会导致控制台出错,因为它默认为 file:/// 协议并且无法加载 file://the/restof/theurl.js

我在本地下载了文件,然后从那里加载它,将 http:// 添加到所有 url,所以它实际上会使用 HTTP 协议。

这很好用。但是,这些链接加载的其他文件也没有指定 http://

有什么方法可以让浏览器对未指定的脚本标签暗示 http://,并避免下载和编辑每个文件只是为了测试一个小的 HTML 页面?

【问题讨论】:

  • 是的,通过使用像 MAMP mamp.info/en 这样的本地服务器。这将允许您像在http 协议上一样运行。否则,您正在寻找黑客攻击,因为您的页面无论如何都不打算在file:// 协议上运行,它们是为了在互联网上运行。如果它们打算在file:// 协议上运行,则应使所有文件在本地可用,因为无法保证互联网连接。

标签: javascript html http


【解决方案1】:

我认为防止此类问题的最简单方法是实际使用非常小的服务器(例如 node.js 或类似或 lighttpd 提供的东西)。

显然,您的文件不应该通过普通的file 协议传递,因此您应该只使用 http 服务器。这样您就可以确保它们按预期工作,并且您不必在更深层次上摆弄您的浏览器。

【讨论】:

    【解决方案2】:

    如果您使用以下标志启动 chrome,这应该可以工作。显然不能用于生产环境,但用于测试应该没问题。

    "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --allow-file-access-from-files
    

    【讨论】:

      【解决方案3】:

      考虑使用简单的本地文件服务器。如果您不确定如何使用,因为您正在使用 JavaScript 进行开发,您可以使用 Node.js 轻松创建一个简单的文件服务器,它使用像 node-static 这样的简单中间件用 JS 编写。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2022-08-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-12-20
        • 1970-01-01
        • 2023-02-07
        相关资源
        最近更新 更多