Clicar em um link para um arquivo PY no Google Chrome faz o download conforme desejado, mas fazê-lo no Microsoft Edge e no Internet Explorer simplesmente o visualiza.
Isso é um problema com os navegadores da web ou com o servidor da web? Se for o último, como o IIS 10 pode ser configurado para sempre forçar downloads de arquivos PY?
Eu tentei o seguinte, mas nada fez a diferença:
- Conforme 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 , adicionando os tipos MIME abaixo para a extensão
.py
:
1a.application/octet-stream
1b.file/download
1c.application/x-python-code
1d.text/x-python
- De acordo com https://stackoverflow.com/questions/19404770/force-file-download-in-iis7 , adicionando uma regra de reescrita de saída que resultou nos seguintes valores no arquivo
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>
Para forçar um link como download, provavelmente é mais fácil apenas modificar seu html.
Adicionar o atributo download fará com que o navegador baixe o arquivo em vez de abri-lo (assumindo html5).
Aqui está a descrição do w3school se você quiser ler mais sobre isso.
Você também pode tentar definir o tipo MIME
file/download
no gerenciador do IIS.