首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么在部署在本地IIS上的ASP.NET中没有正确处理镜像

问为什么在部署在本地IIS上的ASP.NET中没有正确处理镜像
EN

Stack Overflow用户
提问于 2011-10-13 18:36:52
回答 2查看 1.5K关注 0票数 3

我使用IIS4 (Visual Studio2010) MVC2架构创建了一个web应用程序,并将其部署到本地ASP.NET服务器的虚拟目录EasyMan4中。现在,使用解决方案资源管理器,我已经向Content文件夹添加了一个图像。接下来,在Site.Master页面中,我添加了一个img标记,如下所示:

代码语言:javascript
复制
<img src="../../Content/HomeIcon.png" height="64" width="64" alt="Home" />

请注意,css文件的加载方式如下:

代码语言:javascript
复制
<link href="../../Content/Site.css" rel="stylesheet" type="text/css" />

尽管.css和.png文件都在同一个位置,但是当通过http://localhost/EasyMan4/查看站点时,css可以正确加载,而png不能。

通过Visual Studio开发服务器启动相同的项目,完美地呈现了页面。但是,IIS无法正确显示图像。

经过仔细检查,我注意到css文件在chrome developer tools中的位置是http://localhost/EasyMan4/Content/site.css,而图像的位置是http://localhost/Content/HomeIcon.png.。

请注意,由于我不熟悉IIS管理器,因此我更改了IIS管理器中的所有内容,但更改了IIS身份验证类型。目前,我已经禁用了除Windows身份验证之外的所有身份验证类型。请建议我应该做些什么才能正确地显示图像

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-10-13 21:35:43

我是MVC开发人员,我可以告诉你,MVC是一种基于配置框架的约定,最好的做法是将所有文件放在正确的有序文件夹中。例如,对于图像,您可以在内容目录中创建一个名为" Images“的文件夹,并将图像放入其中,与CSS文件一样,放在"CSS”或"stylesheet“目录中。然后使用MVC框架的强大助手。

对于图像,请使用

代码语言:javascript
复制
<img src="<%= Url.Content( "~/Content/Images/HomeIcon.png" ) %>" height="64" width="64" alt="Home" />

对于样式表,请使用

代码语言:javascript
复制
<link href="<%= Url.Content( "~/Content/CSS/Site.css" ) %>" rel="stylesheet" type="text/css" />

这样,您就可以在调试时在Visual studio中与在IIS中执行相同的操作

我希望答案对你有帮助,如果你的问题解决了,请标记为正确答案。

cya,Dario

票数 2
EN

Stack Overflow用户

发布于 2011-10-13 19:03:10

我建议创建一些UrlHelper扩展方法,这样您就可以保持所有内容的一致性。这样,您就可以知道图像、css和脚本文件的位置。注意波浪号"~“的使用,这意味着您的路径从应用程序的根开始。

代码语言:javascript
复制
public static class UrlHelperExtension
{

    public static string Stylesheet(this UrlHelper helper, string fileName)
    {
        return helper.Content(String.Format("~/content/css/{0}", fileName));
    }

    public static string Image(this UrlHelper helper, string fileName)
    {
       return helper.Content(String.Format("~/content/images/{0}", fileName));
    }

    //More helpful methods ....
}

然后,要访问它们,您可以在视图中执行以下操作

代码语言:javascript
复制
<img src="<%= Url.Image("HomeIcon.png") %>" alt="Home" />

<link href="<%= Url.Stylesheet("Site.css")%>" rel="stylesheet" type="text/css" />
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7752861

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档