0

カスタム DNN モジュールのサーバー側の舞台裏で次の HTML コードを作成します。これは、CSS ではなく、サーバー上で作成する必要があります。

<div class=""ca-icon"" style=""background-image: url(DesktopModules/MyModule/" +
                    "ShowPictureImg.aspx?Key=" + KeyImgList(itemCount - 1) + ")"">

あなたが見ているものを説明するために、モジュール内の .aspx を指しています。これは、画像をロードして、その div の背景画像として配置します。これが機能することはすでに知っています。問題は、それにリンクしている URL で発生します。モジュールが親ページまたは子ページ内に配置されているかどうかに基づいて、URL は失敗します。それが機能する唯一の方法は次のとおりです。

親ページ:

url(DesktopModules/MyModule/ShowPictureImg.aspx?Key=SomeKey)

親の子:

url(../DesktopModules/MyModule/ShowPictureImg.aspx?Key=SomeKey)

子の子:

url(../../DesktopModules/MyModule/ShowPictureImg.aspx?Key=SomeKey)

などなど。モジュールが配置されている場所に関係なく、一貫して機能する URL を取得するにはどうすればよいですか?

4

3 に答える 3

4

このモジュールをワイルドに配布する場合は、実際に ResolveClientUrl() を使用して URL を /DesktopModules.. として取得します。子ポータルのセットアップにいる場合、または DNN がサイトのルートにない場合は機能しません。 .

全体的には次のようになります

<%= Page.ResolveClientUrl("~/Desktop...") %>

先頭に ~/ が付いたフルパスがあった場所

これにより、適切に処理されることが保証されます。

于 2012-12-06T05:42:32.283 に答える
1

その場合(冒頭の にurl(/DesktopModules/MyModule/注意してください)、Web サイトのルートで URL を開始する必要があります。/サブディレクトリでウェブサイトを実行していないと仮定すると、これは必要なものに対してうまく機能するはずです.

于 2012-12-06T04:13:14.280 に答える
0

ControlPath実際、私が知る限り、すべてのケースで機能することがわかりました。したがって、URLの最終結果は次のようになりました。

"url(" + ControlPath + "ShowPictureImg.aspx?Key=" + Key + ")"

これにより、本質的にurl(/site/DesktopModules/Modulename/ShowPictureImg.aspx?Key=1234)

于 2012-12-06T20:09:32.023 に答える