私のアプリは、しばらくの間 Requirejs を使用してローカルで問題なく動作していましたが、リモート サーバーに配置すると、Requirejs 関連の問題が再び発生するようになりました。
実際の jquery といくつかの jQuery プラグイン (jquery.cookie など) をロードする jQuery ラッパー スクリプトがあります。
## boot.js
// Loaded via <script data-main="/boot.js" src="/vendor/requirejs/require.js"></script>
require({
baseUrl: '/vendor/requirejs/',
waitSeconds: 5,
paths: {
jquery: '/vendor/jquery/dist/jquery',
jQuery: '/assets/javascripts/jquery-wrapper',
}
}, [
'jQuery'
], function($) {
...
});
});
## /assets/javascripts/jquery-wrapper.js
define([
'order!jquery',
'order!/vendor/jquery-cookie/jquery.cookie.js'
], function($) {
// In here I also define some on my own functions on $
return $;
});
問題は、リモート サーバー上のアプリにアクセスするときに、jquery.cookie スクリプトが評価される時点で「jQuery」が定義されていないことです。これは、jQuery が読み込まれる前に実行されていることを意味します。
Uncaught ReferenceError: jQuery is not defined jquery.cookie.js:47
(anonymous function) jquery.cookie.js:47
私は注文しました!プレフィックスはそのようなことが起こらないようにする必要がありますか?
繰り返しますが、これはローカルで正常に機能します。私が問題に遭遇するのは、リモートサーバーからサービスを提供するときだけです。
関連する場合、ローカルでシンサーバーを使用しています。リモートでもThinを使用していますが、Nginxの背後にありますが、Nginxはすべてを完全にThinにプロキシしています。
5 秒のタイムアウト内にファイルが見つからないという兆候はありません。エラーはすぐにコンソールに表示されます。
どこが間違っているのか誰か教えてもらえますか?
ありがとう