【问题标题】:Asp.net Webpage src linking in Dev vs IIS deployed environment开发与 IIS 部署环境中的 Asp.net 网页 src 链接
【发布时间】:2012-10-10 05:45:22
【问题描述】:

我一直在 VS 2012 中开发一个 Web 应用程序 (asp.net mvc),它一直在流畅地运行。我现在已经将它部署到我的计算机 IIS 上,只是为了在 VS 之外运行一些测试,我遇到了一些问题。

这些问题与图像和 JS 文件的链接方式有关。该问题的最简单示例是图像 src。所以在我的 site.css 我有以下风格:

.menu_div .mnuHeader
{  
     background: url('/img/menuSectionHeader.png') repeat-x center;     
 }

这在开发环境中运行良好,因为 VS IIS express 实例将其旋转为“http://localhost:51034/”。但是当我将它部署到 IIS 时,该网站位于一个虚拟目录中,因此该网站被称为“http://localhost:80/MyWebsite/”。

因此,除非我浏览整个应用程序并将其更改为 /MyWebsite/,否则图像和资源链接将不起作用(这实际上并不可行,因为我必须拥有两个不同的应用程序实例,一个用于开发,一个用于部署,只是链接有点危险)。

我在这里遗漏了什么吗?

谢谢

【问题讨论】:

    标签: asp.net html css asp.net-mvc


    【解决方案1】:

    你为什么不试试相对路径?如果 CSS 文件在 /css/ 并且图形在 /img/,那么您的示例将是:

    .menu_div .mnuHeader
    {  
         background: url('../img/menuSectionHeader.png') repeat-x center;     
     }
    

    您也可以尝试在生产环境中为 /MyWebsite/img/ 重写 /img/:http://www.iis.net/learn/extensions/url-rewrite-module/creating-rewrite-rules-for-the-url-rewrite-module

    【讨论】:

    • 这是正确的解决方案。只需知道 CSS 文件中的所有路径都相对于 CSS 文件本身。但是任何时候你用斜线开始一个路径,你本质上是在定义一个绝对路径......它从根开始。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-01
    • 2011-10-06
    • 2011-05-17
    • 2018-05-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多