Firefox无法正确读取IIS虚拟路径

时间:2012-10-19 19:50:52

标签: .net asp.net-mvc-3 firefox iis

在我们当前的项目中,我们设置了两个虚拟路径,一个用于图像,一个用于文件上传。虚拟路径从单独的服务器中提取图像和文件。我目前正在使用跨浏览器兼容性,Firefox似乎正在以不同于所有其他浏览器的方式阅读虚拟路径。好像它没有正确呈现URL。它们适用于Chrome,Safari和IE 7/8/9。

目前正在使用IIS 7

最终结果:

在这种情况下,用户可以看到他们上传的所有公开PDF的列表。然后,用户可以单击其中一个文件名,PDF将在新的选项卡/窗口中打开。

在IE,Chrome和Safari中,路径如下(正确):

http://localhost:1798/disclosures/bf1bb8bf-ef34-4c93-a4c3-540bab158644.pdf

然而,在Firefox中,它看起来像这样:

http://localhost:1798/Disclosure\disclosures\bf1bb8bf-ef34-4c93-a4c3-540bab158644.pdf

这是当前页面的网址:

http://localhost:1798/Disclosure/Disclosures?lenderProductID=19&lenderID=64

为什么它似乎试图将当前URL与虚拟路径组合在一起?当我点击其中一个PDF链接时,它会打开一个新的选项卡/窗口,但它会重新路由回到索引页面。

我不是最好的IIS,所以任何帮助将非常感谢!提前谢谢。

2 个答案:

答案 0 :(得分:0)

您确定网址是否正确呈现?

我的直觉告诉我,IE,Chrome和Safari正在将反向斜杠转换为正斜杠。 FireFox没有这样做,这就是为什么它似乎在FireFox中被打破了。

答案 1 :(得分:0)

感谢大家的所有投入。在图像/文件路径中查看web.config后,我注意到一个愚蠢的错误,结果证明是我的问题的根源。

在web.config中,我在字符串中反斜杠而不是正斜杠。我猜Chrome,IE和Safari已正确转换它们,但Firefox在这方面要严格一些。

以下是我在<appSettings>中找到的两个文件路径:

<add key="ImagePath" value="\images\" />
<add key="DisclosurePath" value="\disclosures\" />

但是,它们看起来应该是这样的:

<add key="ImagePath" value="/images/" />
<add key="DisclosurePath" value="/disclosures/" />

感谢大家!现在我可以不停地敲打头,戴上我的Dunce帽! : - )