我对RequireJS有一个问题,它只从错误的主机加载了一个文件。我在Heroku上运行我的应用程序,但我已经将静态文件加载到S3上。当我加载主页时,RequireJS主文件从S3正确加载,但主文件中声明的deps不是从S3加载的,而是从Heroku加载的。
下面是正确加载RequireJS和主文件的HTML script标记。
<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加载依赖项app。app.js位于baseUrl的正下方。我很想知道这里是否有一些配置问题。谢谢!
发布于 2016-09-27 02:18:00
绕过这个问题需要一些技巧。
1)我从链接RequireJS的<script>元素中获取了data-main的值
2)在main.js文件中,我解析这个值并获取主机url值。像http://hostname.com/这样的东西
3)然后,我将这个值添加到baseUrl配置设置中,如下所示:
require.config({
baseUrl: hostURl + "static/webpages/js"
});现在需要从我的S3存储桶中加载所有文件。
https://stackoverflow.com/questions/39650068
复制相似问题