2009-05-30 69 views
6

我正在开发ASP .Net MVC应用程序,并且在我的开发机器上,应用程序按预期运行,更重要的是,CSS文件中提到的图像正确显示太。ASP .Net MVC - 未在发布版本中显示的图像

但是,当我将此应用程序发布到测试服务器时,该Web应用程序运行正常,但图像未显示。

如果我在测试来自测试服务器的输出时修改IE中的URL,则返回该图像,这意味着该文件在那里,但正常使用该站点时它不会出现在视图页面内。

我也尝试过替代服务器,但结果是一样的。

要确认,这里是从引用的图像的CSS页面中的行...

background-image: url('/Content/Images/Logo/myLogo.jpg'); 

有什么建议?

干杯

布雷特

回答

19

的URL是不正确的,可能是由于这样的事实:你是在一个子文件夹在服务器的根目录发布,所以他们不再。我通常使用Url.Content("~/Content/Images/...")来构建url,而不是对其进行硬编码。这样它将在建立路径时考虑到路线。

例子:

<img src='<%= Url.Content("~/Content/Images/banner.jpg") %>' alt="Banner" /> 
1

可能的相对路径是错误的......可能他们是错的CSS文件本身。您可以使用FireBug查看CSS是否正确加载,然后您可以检查图像请求,通常在这种情况下您会看到红色(错误)项目。这可能有助于本地化问题。

+0

好计划 - 我会下载FireFox和FireBug,并会看到是否有帮助。 – 2009-05-30 16:19:46

0

为什么要这样做......刚完成我的项目,现在我必须通过改变这个格式的一切!我的所有javascript都失败了,我的所有图片都失败了!由于一些奇怪的原因,我的CSS很好,但为什么这不是更多的记录!? Url.Content甚至不会显示在intellisense下! ASP MVC刚刚在我的爱情规模上失去了一个点。

--very沮丧编码器

3

我有同样的问题,但我发现它为什么被强迫在文件夹的内容认证的原因。

当用户还没有登录时,他们被分类为匿名身份验证。在IIS7中(我正在使用它,猜测它在IIS6中是一样的),您需要在功能视图中打开身份验证窗口。然后编辑匿名身份验证,以使用您的应用程序池标识或默认身份,只需确保该用户有权读取该文件夹。

为我修好了,希望它适合你。