0

スキン内に、JavaScript ファイルを追加するモジュール コンテナーがあります。
問題ありません、私は使用します:

<%@ Register TagPrefix="dnn" Namespace="DotNetNuke.Web.Client.ClientResourceManagement" Assembly="DotNetNuke.Web.Client" %>
<dnn:DnnJsInclude runat="server" FilePath="script.js" PathNameAlias="SkinPath" />

唯一の問題は、スクリプトがスキン フォルダーにないことです。

Portals\_default\Skins\MySkin\script.js

ただし、コンテナーフォルダー内:

Portals\_default\Containers\MySkin\script.js

上記のコードを追加しても、スキン フォルダーへのリンクが生成されるため機能しません。

<script src="/Portals/_default/Skins/MySkin/script.js?cdv=18" type="text/javascript"></script>

この単純なコードを使用すると、機能します。

<script src='<%= SkinPath %>script.js' />

ClientResourceManagementしかし、それでは!のすべての利点を失います。

ソースとドキュメントを見ると、 2 つのタイプしかなくPathNameAlias、いずれもコンテナー用ではありません。

スクリプトをコンテナー フォルダーに追加する理由は、スクリプトがその 1 つのコンテナーでのみ使用され、他の場所では使用されないためです。

誰でも解決策を知っていますか?
自分で実装するのは簡単PathNameAliasですか?

4

1 に答える 1

0

コード ビハインドでClient Resource Manager APIを使用して、スクリプトやスタイルシートをサイト ディレクトリの任意の場所に登録できます。

モジュールの分離コードで、これを使用します

        override protected void OnInit(EventArgs e)
        {
            ClientResourceManager.RegisterScript(Parent.Page, "~/Portals/-default/Containers/MySkin/script.js");

            base.OnInit(e);
        }
于 2013-12-22T18:45:42.367 に答える