実際、私は Requirejs と Backbone で厄介な問題に直面しています。私は 2 つの異なるパスでアプリを開発しています。
- 主なアクセス、例: /App/index.php#list
- サブアクセス、例: /App/index.php/clone#list
メソッドrequire([module])でモジュールをロードする必要があるときに問題が発生します。
絶対パスを使用すると、次のrequire(['/App/js/views/modal.js'])
エラーが発生するだけです。
エラー: モジュールの読み込みタイムアウト: /App/js/views/modal.js
require(['js/views/modal.js'])
メインアクセスとrequire(['../js/views/modal.js'])
サブアクセスのように、相対的な方法を使用すると、すべてが期待どおりに機能します。
絶対パスを使用して他のモジュールをロードしていますが、モジュールを複製して別の名前で要求すると機能します。唯一の違いは、必要なモジュールが別のモジュールで既に定義されていることです。したがって、次のようにすでにロードされています。
メインモジュール
require('/App/js/views/row.js'], function(Row){
Somecode...
});
....
require('/App/js/views/modal.js'], function(Modal){
Othercode...
});
行モジュール
define([
'backbone',
'text!templates/row.html',
'views/modal', //the same view callend in my main file!
], function(Backbone, rowTemplate, Modal){
Viewcode...
});
モーダルモジュール
define([
'backbone',
'text!templates/modal.html',
'models/user_model',
], function(Backbone, modalTemplate, Model){
Viewcode...
});
何かが足りないのかもしれませんが、この背後にあるロジックがわかりません。絶対アドレスで動作しないのはなぜですか?