Принудительная загрузка файлов PY в Edge и IE

При нажатии на ссылку на PY-файл в Google Chrome он загружается по желанию, но в Microsoft Edge и Internet Explorer просто просматривает его.

Это проблема с веб-браузерами или веб-сервером? Если последнее, как IIS 10 может быть настроен так, чтобы всегда принудительно загружать файлы PY?

Я попробовал следующее, но ничего не изменило:

  1. Согласно https://www.jamf.com/jamf-nation/articles/309/using-iis-to-enable-http-downloads-on-a-windows-server-2008-or-2012-file-share-distribution-point, добавляя следующие типы MIME для расширения .py:
    1a. application/octet-stream
    1б. file/download
    1c. application/x-python-code
    1д. text/x-python
  2. В соответствии с https://stackoverflow.com/questions/19404770/force-file-download-in-iis7 добавление правила перезаписи исходящего трафика, в результате которого в файле были указаны следующие значения web.config:

<outboundRules>
    <rule name="PY_ForceDownload" preCondition="PY_Precondition">
        <match serverVariable="RESPONSE_Content-Disposition" pattern=".*" />
        <conditions>
            <add input="{REQUEST_FILENAME}" pattern="(.*)\\([^/]+)\.py$" />
        </conditions>
        <action type="Rewrite" value="attachment; filename={C:2}.py" />
    </rule>
    <preConditions>
        <preCondition name="PY_Precondition">
            <add input="{REQUEST_FILENAME}" pattern="\.py$" />
        </preCondition>
    </preConditions>
</outboundRules>

1 ответ

Решение

Для принудительной загрузки ссылки, вероятно, проще всего изменить HTML.

<a href="yourPython.py" download>Some link text.</a>

Добавление атрибута загрузки приведет к тому, что браузер загрузит файл, а не откроет его (в предположении html5).

Вот описание w3school, если вы хотите узнать больше об этом.

Вы также можете попробовать установить MIME Type в file/download в диспетчере IIS.

Другие вопросы по тегам