2

WebSharper の学習を始めたところですが、リソース (css や javascript ファイルなど) の管理が少し混乱しています。

これに関するドキュメントには、リソース宣言の例が示されています

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

また[<Require>]、アセンブリに属性を配置して、リソースをサイトのすべてのページに表示することができます。

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

ドキュメントには、属性をモジュール、タイプ、および (モジュール レベルの) let バインディングに配置でき、WebSharper は依存関係グラフを作成して、特定のページ (アクション) が依存関係を必要とするかどうかを判断すると述べています。(Twitter Bootstrap リソース宣言を使用して) いくつかのことを試しましたが、これを機能させる唯一の方法は、アセンブリ属性です。

[<Require>]誰かが属性を適切に使用して、あるアクションに追加され、別のアクションには追加されないようにする方法の例を挙げて (またはリンクを提供して) もらえますか?

参考までに、Twitter の Bootstrap リソース宣言は次のとおりです。

[<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が含まれていると思いますが、ここの属性はBootstrapリソースの依存関係になると思います。)

4

1 に答える 1

3

[<Require(typeof<JQuery.Resources.JQuery>)>]現在定義されているリソースの前に常に JQuery を含めるように WebSharper に指示するため、持つことは冗長ではありません。

Require参照された dll のアセンブリ レベルの属性は、アセンブリがページにWeb.Control使用されている型の 1 つから参照されている場合にのみ、特定のアクションに対して返されたページにリソースを自動的に追加しません。[<Require(typeof<MyResource>)>]モジュール、関数、または型など、より小さなスコープでも同じように機能します。

于 2014-09-04T14:42:23.040 に答える