有没有办法强制网站下的网络应用程序中的“路径”解析应用程序下的实际路径,而不是网站?
我是新手所以我无法上传我正在谈论的图片,但看看你是否可以直观地看到我的IIS设置:
IIS 7.0
----MAIN WEB SITE:
----Web App #1
----Web App #2
每个网络应用都有自己的CSS,指向自己的图像;例如,在Web App#1中:
background-image: url(images/someimage.png)
问题是,由于网络应用程序安装在主站点下,“images / someimage.png”解析为主站点的图像文件夹,而不是Web应用程序#1。
我该如何解决这个问题?
答案 0 :(得分:4)
先试试
There is something about "Paths" for Asp.net beginners
更新(因为我也在努力):
除了MapPath背后的代码(“〜/ ...”),我的焦点只来自HTML / CSS路径分辨率
我注意到我们是否在讨论HTML
<img src="/images/x.jpg" /> this will work only from
IIS 7.0
----MAIN WEB SITE
“images”前面的斜杠“/”将被解释为“go to root”
修复
IIS 7.0
----MAIN WEB SITE
----Web App #1
删除“/”以便<img src="images/x.jpg" />
当托管为网站并托管为网络应用时,这对两者都有效
现在CSS很棘手不同的方式,我很惊讶使用你的例子它不起作用,因为图像前面没有斜线。
考虑基于您的expample的结构
IIS 7.0
----MAIN WEB SITE:
----Web App #1
----styles
----images
你的CSS
background-image: url(images/someimage.png)
告诉浏览器查找MAIN WEB SITE/Web App #1/styles/images/someimage.png
添加“/”background-image: url(/images/someimage.png)
结果为MAIN WEB SITE/images/someimage.png
现在添加“../”background-image: url(../images/someimage.png)
结果为MAIN WEB SITE/Web App #1/images/someimage.png
(好像解决了一级,然后转到图像)
好的部分是,一旦你更改了这些前缀以使其作为Web应用程序运行,即使在您需要这样做的情况下作为实际网站托管,它似乎也可以工作
IIS 7.0
----MAIN WEB SITE (web app #1):
----styles
----images
[对不起,如果这个答案不够描述或不整齐,我会在有人提议时添加编辑,或者我自己会发现错误,通常是firefox / chrome F12并查看资源路径]
答案 1 :(得分:0)
我添加“runat =”server“”。 像这样:
<a href="~/Default.aspx" runat="server">Home</a>