asp.net-mvc - 网站下 IIS 7 Web 应用程序中的相对路径

标签 asp.net-mvc iis-7 routing

有没有办法强制网站下的网络应用程序中的“路径”解析为应用程序下的实际路径,而不是网站?

我是新手,所以我无法上传我正在谈论的图像,但看看您是否可以想象我的 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/

相关文章:

sql - DNN数据库错误连接IIS7

c# - IIS7 ASP.NET MVC 2 Assets 缓存模块不工作

jquery - 使用 select2 将空值添加到 DropDownListFor

fonts - 在 IIS 上仅为字体文件启用 CORS

asp.net-mvc - 如何链接到将数组作为参数的操作(RedirectToAction 和/或 ActionLink)?

node.js - 我使用 express for node.js 得到冒号和我的参数

Angular 2路由应用程序路由模块声明错误

ember.js - 如果未指定子路由,Emberjs 仅重定向到默认路由

javascript - POST KnockoutJS 数据到 mvc Controller 未绑定(bind)

asp.net-mvc - MVC @Html.CheckboxFor 在表单提交时提交 true,false