【问题标题】:Images not shown when publishing MVC application to virtual directory inside default web-site将 MVC 应用程序发布到默认网站内的虚拟目录时未显示图像
【发布时间】:2011-02-15 01:53:08
【问题描述】:

我正在使用 ASP.NET MVC 1 和 VS2008 开发应用程序。当我将它部署到 WinXP 上我的 IIS6 中的默认网站时,所有图像都正确显示,任何给定图像的路径是 localhost/Content/ImagesUI/[image].[ext]

当我将它部署到在同一站点内创建的虚拟目录时,任何图像请求都会返回 IIS 标准 404 错误页面,而路径是 localhost/[DirectoryName]/Content/ImagesUI/[image].[ext] -这似乎是正确的,真的吗?

我在站点和目录配置中都将 .* 映射到 c:\windows\microsoft.net\framework\v2.0.50727\aspnet_isapi.dll。删除此映射后,图像将正确显示。但是,当然,所有其他 URL 都不起作用。

当我尝试使用其 URL 在浏览器中打开图像时,aspnet_wp.exe 进程甚至没有启动(我重新启动了 IIS 以对其进行测试) - 我只是得到 404 或图像,这取决于 *映射。因此,我认为它与注册为 MVC 的路由无关,也与 ASP 无关。

我找到的解决方案是将 Content 文件夹设置为虚拟目录并从其配置中删除 * 映射。虽然在某种程度上这没问题,但我想要一个更好的解决方案,它可以解释和消除问题的原因,而不仅仅是解决问题。

感谢您的帮助!

【问题讨论】:

  • 请清理文本,因为它很难阅读。关于图像 - 可能您对图像的路径有疑问。显示一些代码以查看如何在 MVC 视图中链接到它们。您应该使用 Url.Content() HTML Helper 方法。
  • 谢谢,我正在使用更复杂的逻辑来构建 URL,但是 localhost/[DirectoryName]/Content/ImagesUI/[image].[ext] 是否可能不正确?无论如何,我会尝试 Url.Content(),它似乎符合我的需求。
  • 我试过 ,没有结果
  • 哈!它被本地化为具有包含“。”的虚拟目录名称。在里面。我删除了句号,它有效!我当然会在没有期间的情况下继续工作,但有什么解释吗?
  • 嗯,这里可能会出现一些 IIS6 怪癖。

标签: asp.net-mvc iis routing virtual-directory


【解决方案1】:

哈!它被本地化为具有包含“。”的虚拟目录名称。在里面。我删除了句号,它有效!我当然会在没有期间的情况下继续工作,但有什么解释吗?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-01-15
    • 1970-01-01
    • 2014-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-22
    • 2012-03-21
    相关资源
    最近更新 更多