2013-07-11 32 views
9

我將SignalR合併到項目中,我已經在使用require.js來處理我的腳本依賴關係。SignalR&require.js配置

我在加載「jquery.signalR-1.1.2」後調用「/ signalr/hubs」時遇到了一些麻煩。

我得到它的工作,但我想知道是否有更好的選擇。

這是我有:

require(["signalr"], function() { 
    require(["noext!/signalr/hubs"], function() { 
     //initialize and work with the hub here 
    } 
} 

有沒有一種方法,我可以在這裏創建一個墊片,以建立signalr /集線器和signalr腳本之間的依賴關係?

謝謝!

回答

28

這對我的作品與SignalR 1.1.2:

require.config({ 
baseUrl: "/<your scripts dir>", 
paths: { 
    "jquery": "jquery-<your jquery version>.min", 
    "signalr.core": "jquery.signalR-<your signalr version>.min", 
    "signalr.hubs": "/signalr/hubs?" 
}, 
shim: { 
    "jquery": { 
     exports: "$" 
    }, 
    "signalr.core": { 
     deps: ["jquery"], 
     exports: "$.connection" 
    }, 
    "signalr.hubs": { 
     deps: ["signalr.core"], 
    } 
} 
}); 

require(["jquery", "signalr.hubs"], 
    function($) 
    { 
     var hubProxy = $.connection.myHub; 

     // ... go to town ... 
    }); 
+0

嗨德魯, 感謝您的建議。我已經試過了,這是我得到的: GET http:// localhost:39047/scripts/noext!/signalr/hubs.js?v = 635092295003095722 404(Not Found)require.js:1854 Uncaught Error :腳本錯誤 http://requirejs.org/docs/errors.html#scripterror require.js:159 –

+0

雖然它在理論上非常有意義,但它在實踐中並不奏效。不知道爲什麼,真的很沮喪。 –

+0

只想檢查一下,你的項目中是否有/scripts/noext.js? –