【问题标题】:RequireJS loading file from wrong hostRequireJS 从错误的主机加载文件
【发布时间】:2017-01-31 16:22:35
【问题描述】:

我遇到了 RequireJS 的问题,它只从错误的主机加载一个文件。我在 Heroku 上运行我的应用程序,但我将静态文件加载到 S3 上。当我加载主页时,RequireJS主文件从S3正确加载,但主文件中声明的deps不是从S3加载,而是从Heroku加载。

这是正确加载RequireJS和主文件的HTML脚本标签。

<head>
    <script src="https://mybucket.s3.amazonaws.com/static/webpages/js/libs/require.js" data-main="https://mybucket.s3.amazonaws.com/static/webpages/js/main.js"></script>
</head>

现在是main.js 文件:

require.config({
    baseUrl: "/static/webpages/js",
    paths: {
        angular : "libs/angular/angular",
        angularAMD : "libs/angular/angular-amd.min",
        angularUiRouter : "libs/angular/angular-ui-router.min",
        angularLocalStorage: "libs/angular/angular-local-storage.min",
        bootstrap: "libs/bootstrap.min",
        jquery: "libs/jquery.min",
        app : "app"
    },
    shim : {
        'angular' : {'exports' : 'angular'},
        'angularUiRouter' : ['angular'],
        'angularLocalStorage' : ['angular'],
        'bootstrap' : ['jquery']
    },
    deps: ['app']
});

出于某种原因,RequireJS 尝试从 Heroku 而不是 S3 加载依赖项 appapp.js 位于 baseUrl 的正下方。我很想知道这里是否存在一些配置问题。谢谢!

【问题讨论】:

    标签: javascript heroku amazon-s3 requirejs


    【解决方案1】:

    解决这个问题需要一些技巧。

    1) 我从链接 RequireJS 的 &lt;script&gt; elem 中获取了 data-main 的值

    2) 在main.js 文件中,我解析这个值并获取主机url 值。类似http://hostname.com/

    3) 然后我将此值添加到 baseUrl 配置设置中,如下所示:

    require.config({
        baseUrl: hostURl + "static/webpages/js"
    });
    

    现在需要从我的 S3 存储桶中加载所有文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-05-17
      • 1970-01-01
      • 2013-11-22
      • 1970-01-01
      • 2019-01-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多