为了在不打开服务器的情况下将PDF作为文件下载,我使用了一个很好的脚本download.js,它在Chrome中运行得非常好。但正如作者在FF中警告的那样,它会在单独的选项卡中打开下载的PDF文件 - 导致我的SPA出现导航问题。
他在Apache上说这个代码在htaccess中会修复它。我的应用程序在IIS 8上运行。如果可能的话,我更愿意在应用程序web.config中处理它。我可以在我的Web.config中放入system.webServer和/或在我的IIS中管理 - 允许共享主机提供程序。 (当然,将在下面的代码中将pdf添加到FilesMatch。)
//Easiest way to configure headers via Apache is to set Header set Content-Disposition "attachment" for files you want to be downloaded.
//So .htaccess can look like:
<FilesMatch "\.(zip|rar)$">
Header set Content-Disposition attachment
</FilesMatch>
答案 0 :(得分:0)
感谢serverfaut上发现的这个(以前不知道该网站)我能够在上面的问题中整理出一个等同于htaccess语言的出站规则。 (并且沿途学到了一些很棒的东西)我现在得到了我正在寻找的Firefox下载行为,虽然我仍然需要找出处理资源未找到错误的最佳方法 - 建议欢迎。
<system.webServer>
<rewrite>
<outboundRules>
<rule name="Allow pdfs to be downloaded" preCondition="Only match pdfs">
<match serverVariable="RESPONSE_Content_Disposition" pattern="(.*)" negate="false" />
<action type="Rewrite" value="attachment" replace="true" />
<conditions>
<add input="{QUERY_STRING}" pattern="^download" />
</conditions>
</rule>
<preConditions>
<preCondition name="Only match pdfs">
<add input="{RESPONSE_CONTENT_TYPE}" pattern="^application/pdf" />
</preCondition>
</preConditions>
</outboundRules>
</rewrite>