2

これは、Play! を使用しているときに起こりました。フレームワークですが、 RequireJSを使用すると一般的に発生する可能性があると思います。

テンプレートでは、次のステートメントを使用しました。

 <script>require = {
      // The path where your JavaScripts are located
      baseUrl: "assets/js/",
    ...
};</script>
@helper.requireJs(core = routes.Assets.at("js/require-jquery.js").url, module = routes.Assets.at("js/main.js").url)

これは次のようにコンパイルされます:

<script> require = ... </script>
<script type="text/javascript" data-main="/assets/js/main.js" src="/assets/js/require-jquery.js"></script>

ブラウズでリロードを押すと、コンソールに次のエラーが表示されます。

GET http://localhost:9000/assets/js/main?bust=1361232944505 404 (Not Found) require-jquery.js:1843
Uncaught Error: Script error
http://requirejs.org/docs/errors.html#scripterror 

ご覧のとおり、要求されたファイルの拡張子は.js切り捨てられています。なんで?それを避ける方法は?

4

1 に答える 1

1

問題は、RequireJS 構成にフィールドが含まれており、タグの属性でbaseUrl同じパスが繰り返されていることです。プレーを変える!フレームワーク ヘルパー ステートメントから次のことを行います。data-mainscript

@helper.requireJs(core = routes.Assets.at("js/require-jquery.js").url, module = "main")

または一般的な場合:

<script type="text/javascript" data-main="main" src="/assets/js/require-jquery.js"></script>

問題を取り除きます。

なぜそれが起こり、その漠然とした形で現れるのかは、RequireJS 開発者への質問です。とにかくプレイ!ドキュメントhereまたはhereに記載されているフレームワーク サンプルを修正する必要があります。また、RequireJS ページの一般的なエラー セクションも更新する必要があります。

于 2013-02-19T00:37:02.117 に答える