为什么浏览器尝试从服务器加载本地JavaScript文件?

时间:2017-01-23 15:31:53

标签: javascript html dojo loader

我有一个简单的HTML页面,它试图访问远程和本地JavaScript文件:

<!DOCTYPE html>
<html>
<head>
    <title></title>
    <meta charset="utf-8" />
    <script src="https://js.arcgis.com/3.19/"></script>
    <script src="SearchExtent.js"></script>
    <script>
        require([
            ...

SearchExtent.js 存储在与HTML页面相同的文件夹中。

在Chrome和Edge中调试HTML页面时,会出现404错误,表示找不到以下资源:

https://js.arcgis.com/3.19/SearchExtent.js

为什么浏览器会查看远程服务而不是本地文件系统&gt;

1 个答案:

答案 0 :(得分:0)

必须正确配置Dojo才能同时使用本地和CDN源。以下是从CDN和本地服务器正确加载内容的代码:

<!DOCTYPE html>
<html>
<head>
<title></title>
<meta charset="utf-8" />
<link rel="stylesheet" href="https://js.arcgis.com/3.19/esri/css/esri.css">
<script>
    var dojoConfig = {
        paths: { js: location.pathname.replace(/\/[^/]+$/, "") + "/js" }
    };
</script>
<script src="https://js.arcgis.com/3.19"></script>
<script>
    require([
        "js/SearchExtent",
        "dojo/domReady!"
    ], function (SearchExtent) {
        console.log("...");
    });
</script>
</head>
<body>
</body>
</html>

dojoConfig的路径属性用于指定&#34; js&#34;的位置。本地服务器上的别名。另请注意,没有对自定义JavaScript模块的显式引用。对 require 的调用使用 paths 属性中定义的别名引用自定义模块。