有没有办法强制网站下的网络应用程序中的“路径”解析为应用程序下的实际路径,而不是网站?
我是新手,所以我无法上传我正在谈论的图像,但看看您是否可以想象我的 IIS 设置:
IIS 7.0
----MAIN WEB SITE:
----Web App #1
----Web App #2
每个 Web 应用程序都有自己的 CSS,指向自己的图像;例如在 Web App #1 中:
background-image: url(images/someimage.png)
问题是,由于 Web 应用程序安装在主站点下,因此“images/someimage.png”解析为主站点的图像文件夹,而不是 Web 应用程序 #1。
我怎样才能解决这个问题?
最佳答案
先试试这个
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”前面的斜杠“/”将被解释为“转到root”
修复
IIS 7.0
----MAIN WEB SITE
----Web App #1
删除“/”所以
<img src="images/x.jpg" />
这将适用于作为站点托管和作为 Web 应用程序托管的两种情况现在 CSS 很棘手 以不同的方式,我很惊讶使用你的例子它不起作用,因为图像前面没有斜线。
考虑基于您的示例的结构
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 并查看资源路径]
关于asp.net-mvc - 网站下 IIS 7 Web 应用程序中的相对路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20574119/