我在自定义DNN模块中在服务器端的幕后创建以下HTML代码。这必须在服务器上创建,而不是在CSS中创建。
<div class=""ca-icon"" style=""background-image: url(DesktopModules/MyModule/" +
"ShowPictureImg.aspx?Key=" + KeyImgList(itemCount - 1) + ")"">
为了解释你所看到的内容,我指向我模块中的.aspx,它将加载图像并将其作为该div的背景图像。我已经知道这很有效。链接到它的网址会出现问题。根据模块是放在父页面上还是子页面内,url将失败。它的唯一工作方式是:
父页面:
url(DesktopModules/MyModule/ShowPictureImg.aspx?Key=SomeKey)
父母的孩子:
url(../DesktopModules/MyModule/ShowPictureImg.aspx?Key=SomeKey)
儿童:
url(../../DesktopModules/MyModule/ShowPictureImg.aspx?Key=SomeKey)
依此类推。无论模块放在何处,我怎样才能获得一致的URL?
答案 0 :(得分:4)
如果你正在分发这个模块,我实际上会使用ResolveClientUrl()来获取URL / DesktopModules ..如果你在子门户网站设置中,或者如果DNN不在根目录中,那么它将不起作用该网站。
总的来说,它会像
<%= Page.ResolveClientUrl("~/Desktop...") %>
你的完整路径是在那里以〜/开头
这将确保正确处理。
答案 1 :(得分:1)
如果您执行url(/DesktopModules/MyModule/
(请注意开头的/
),则应在您网站的根目录下启动您的网址。假设您没有在子目录中运行您的网站,这应该可以满足您的需求。
答案 2 :(得分:0)
据我所知,我实际上发现ControlPath
在所有情况下均有效。所以我对网址的最终结果是这样的。
"url(" + ControlPath + "ShowPictureImg.aspx?Key=" + Key + ")"
这主要导致url(/site/DesktopModules/Modulename/ShowPictureImg.aspx?Key=1234)