2016-09-22 6 views
0

間違ったホストから1つのファイルしか読み込まれないRequireJSに問題があります。私はHerokuでアプリケーションを実行していますが、S3に静的ファイルをロードしています。ホームページをロードすると、S3からメインのRequireJSメインファイルが正しくロードされますが、メインファイルに宣言された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からの依存appをロードしようとします。 app.jsbaseUrlのすぐ下にあります。私はここにいくつかの構成上の問題があるかどうかを知りたいです。ありがとう!

答えて

0

この問題を回避するには、少しハックが必要でした。

1)私はmain.jsファイルでRequireJS

2)を結ぶ<script>のelemからdata-mainの値をつかんで、私はこの値を解析し、ホストのURL値をつかみます。 http://hostname.com/

3のようなもの)私は、このようなbaseUrlコンフィグ設定にこの値を付加:

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

今すぐロード私のS3バケットからすべてのファイルが必要です。

関連する問題