我已将一对相关的 Web 应用程序部署到测试 IIS 7.5 服务器。IIS 管理器中的目录结构如下:
“许可”申请是通过http;“续订”应用程序通过 https。那部分工作正常。但是发生的事情(两个应用程序)是没有加载图像、Javascript 和 CSS。当我查看日志文件时,每个图像、Javascript 和 CSS 文件都会给出 404 错误。该站点的目录结构是这样的:
BEALicensingTest/
lookup/
(ASPX files, etc. are at this level)
Content/
(CSS is at this level)
images/
(images are at this level)
Scripts/
(Javascript files are at this level)
renewal/
(ASPX files, etc. are at this level)
Content/
(CSS is at this level)
images/
(images are at this level)
Scripts/
(Javascript files are at this level)
以下是其中一个应用程序的主 CSS 文件中的代码示例:
div#header
{
background: #f7f3df url('../Content/images/banner.gif') no-repeat left top;
height: 92px;
min-width: 800px;
width: 100%;
position: relative;
}
<head>
这是其中一个应用程序的母版页中的代码示例(来自该部分):
<link rel="stylesheet" type="text/css" href="../Content/BEA.css" />
<%-- jQuery includes --%>
<script type="text/javascript" src="../Scripts/jquery-1.10.2.min.js"></script>
<script type="text/javascript" src="../Scripts/jquery-ui-1.10.3.min.js"></script>
<link rel="stylesheet" type="text/css" href="../Content/themes/sunny/jquery-ui-1.10.3.custom.min.css" />
这是<img>
来自 .aspx 文件之一的标签:
<img src="../Content/images/cc_logos_vertical.png" alt="credit card logos" width="88"
height="170" style="float: right; padding-left: 5px;" />
如您所见,我对所有内容都使用相对路径。我也尝试过绝对路径(例如/Content/BEA.css
)。
我已经检查了权限(根据https://serverfault.com/questions/260777/why-isnt-iis-serving-my-static-css-js-files上的类似问题,给定站点文件夹的 IIS_IUSRS 读取权限) ,确保启用了静态内容功能,并尝试按照IIS 7.5 no images css js 显示中所述更改 CAS 策略。我还尝试了http://www.paulirish.com/2010/the-protocol-relative-url/中所述的“协议相对 URL” 。我尝试过的没有任何区别。
我究竟做错了什么?
编辑:我做了更多实验,发现如果我像这样在应用程序子文件夹中添加所有图像、CSS 和 Javascript 引用:/lookup/Content/images/banner.gif
它们/renewal/Scripts/jquery-1.10.2.min.js
就开始工作了。因此,当我认为我使用的是绝对路径:/Content/images/banner.gif
时,我真的没有。
但是,既然我已经更改了引用,图像等在我在 Visual Studio 2012 中调试时不会加载。我明白为什么,但是有什么办法可以让它同时工作吗?