2014-09-04 56 views
1

我開始學習WebSharper的跋涉,並且發現管理資源(例如css和javascript文件)有點混亂。管理站點中的資源

關於這個documentation給出了一個例子資源聲明

type MyResource() = 
    inherit Resources.BaseResource("http://my.cdn.net", 
     "file1.js", "file2.js", "file3.css") 

,你可以放置一個[<Require>]屬性的組件,以使資源出現在每個頁面的網站上:

[<assembly: Require(typeof<MyResource>)>] 
do() 

文檔繼續說,該屬性可以放在模塊,類型和(模塊級別)讓綁定和WebSharper將建立一個依賴關係圖ou t如果給定頁面(Action)需要依賴或不。我已經嘗試了一些東西(使用Twitter Bootstrap資源聲明),但是我必須完成這項工作的唯一方法是程序集屬性。

有人可以舉一個例子(或提供一個鏈接)如何正確使用[<Require>]屬性,以便它被添加到一個動作,但不是另一個?

僅供參考,這裏是由Twitter的引導資源聲明:

[<Require(typeof<JQuery.Resources.JQuery>)>] 
[<Sealed>]  
type BootstrapResource() = 
    inherit Resources.BaseResource("https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/", 
            "css/bootstrap.min.css", "js/bootstrap.min.js") 

(我得到的,這裏的[<Require]>屬性在這裏使其成爲引導資源的依賴,但我認爲WebSharper包括JQuery的反正,這將使它是多餘的。)

回答

2

擁有[<Require(typeof<JQuery.Resources.JQuery>)>]並不重複,因爲它告訴WebSharper始終在當前定義的資源之前包含JQuery。在一個被引用的DLL組件級

Require屬性將不是資源自動添加到特定操作返回的頁面,只有當從用於頁面Web.Control類型之一引用的組件。它適用於較小的範圍:模塊,功能或類型上的[<Require(typeof<MyResource>)>]

+0

我正在使用Visual Studio 2013,您可以在調試時編輯它,但那不起作用。當我停止並重新開始調試時,該屬性按預期工作。呃,好吧。 :) – 2014-09-05 05:11:06

+0

感謝您對'Require'屬性的解釋。現在你已經解釋了它。 :) – 2014-09-05 05:13:56