来自wwwroot外部的图像不显示(尽管映射)

时间:2012-11-16 17:47:15

标签: iis coldfusion

在我的ColdFusion应用程序中,我想将图像保留在wwwroot之外的此文件夹中:C:\ extSite \ stdImages

我在wwwroot \ WEB-INF \ jrun-web.xml中创建了一个映射,如下所示:

<virtual-mapping>
    <resource-path>/extStdImages</resource-path>
    <system-path>C:\extSite\stdImages\</system-path>
</virtual-mapping>

要显示图像,请执行以下操作:

<img src="/extStdImages/abc.jpg">

这在我的开发站点(使用ColdFusion的内置Web服务器)上工作正常,但图像不会显示在生产中(我使用的是IIS)。我想知道是否必须在IIS或生产服务器上的其他地方调整某些内容以允许访问这些文件。

有人可以帮忙吗?提前谢谢!

彼得

3 个答案:

答案 0 :(得分:4)

在iis中,您需要创建一个指向images文件夹的虚拟目录。虽然将图像放在wwwroot之外是没有意义的,因为它们必须是Web可访问的,以便它们显示在网页上。这样做的唯一原因是。如果您使用密码保护版权图像,而不是直接链接到它们。

答案 1 :(得分:2)

如果你在IIS上,你可能想看看你的web.config

http://www.iis.net/configreference/system.applicationhost/sites/site/application/virtualdirectory

这是一个示例:

<site name="Contoso" id="2" serverAutoStart="true">
   <application path="/">
      <virtualDirectory path="/" physicalPath="C:\Contoso\Content" />
   </application>
   <application path="/CRM">
      <virtualDirectory path="/" physicalPath="C:\Contoso\Content\CRM" />
      <virtualDirectory path="/Images" physicalPath="E:\Images" />
   </application>
   <bindings>
      <binding protocol="http" bindingInformation="*:80:www.contoso.com" />
   </bindings>
</site>

答案 2 :(得分:0)

这是错误的C:\ extSite \ stdImages \ CF必须使用斜杠而不是反斜杠 这是正确的,适用于C:/ extSite / stdImages /