我创建了一个带皮肤的主题,包括例如以下内容:
<asp:Image runat="server" runat="server" SkinID="SquareCopy"
ImageUrl="~/App_Themes/MyTheme/square_copy.png" />
这将创建(取决于我称之为的页面):
<img src="../App_Themes/MyTheme/square_copy.png">
如果我只想要(不../
)我需要做什么:
<img src="App_Themes/MyTheme/square_copy.png">
我尝试省略~/
:ImageUrl="App_Themes/MyTheme/square_copy.png" />
但这似乎没有任何影响。我想要修复路径的原因是在整个项目中使用base href
。
任何建议的Thx!
修改: 有趣的是,如果我使用没有skin-id的Image-Control,我可以让它像我想要的那样渲染路径:
<asp:Image id="Image1" runat="server"
ImageUrl="App_Themes/MyTheme/square_copy.png"/>
结果:
<img id="MainContent_Image1" alt="Image text"
src="App_Themes/VolunteerClient/square_copy.png">
答案 0 :(得分:1)
皮肤文件中定义的元素的基本URL始终为
App_Themes/MyTheme/
其中MyTheme是您主题的名称。 例如
Path="~/App_Themes/MyTheme/Images/a.jpg"
将被解决 路径= “App_Themes文件/ MyTheme的/图像/ A.JPG”
也
Path="Images/a.jpg"
将被解决 路径= “App_Themes文件/ MyTheme的/图像/ A.JPG”
如果您想要更改该行为,则需要覆盖路径。
希望有所帮助
答案 1 :(得分:0)
尝试这样的事情......
<asp:Image runat="server" runat="server" SkinID="SquareCopy"
ImageUrl="<%= Page.ResolveClientUrl("~/App_Themes/MyTheme/square_copy.png") %>" />