Django обслуживает различные типы файлов с помощью IIS / виртуального каталога

#python #django #windows #iis

#python #django #Windows #iis

Вопрос:

Я пытаюсь обслуживать различные типы файлов с помощью Django на сервере IIS Windows. И, хоть убейте, я не могу в этом разобраться.

Я работаю с устаревшей базой данных, которая хранит пути к файлам в столбце. Файлы хранятся в общей сетевой папке, поэтому создали виртуальную папку (устали проходить-хотя и подключаться как)

Я получаю URL-адреса, созданные в HTML, используя путь к файлу из DB / model

 <td><a href ="/{{doc.location}}" download>{{doc.location}}</a></td>
 

что приводит к http://panel/docs/07/xxxxxx.doc

Файл загружается, но в Chrome появляется ошибка — нет файла.

Файлы представляют собой смесь doc / pdf / txt и нескольких других типов файлов.

Любая помощь была бы весьма признательна, ломая голову над этим.

Комментарии:

1. Я протестировал его на своем сервере Windows, используя простую HTML-страницу, он может работать и загружать файлы в моем браузере. Если вы напрямую введете URL-адрес doc.location, сможете ли вы получить к нему доступ?

2. Да, я пробовал {{doc.location}}, и это не работает, поскольку добавляет его в конец текущей страницы. panel/allFileSearch/docs/07/05738829PMXC.doc / необходим, чтобы добраться до корня. Вы пробовали это с Django или просто с обычной HTML-страницей?

3. Я не эксперт в django, поэтому я просто использую обычную HTML-страницу. Если вы можете получить доступ к doc через URL, но не можете загрузить в django, возможно, что-то не так с django. Но если вы не можете получить доступ к документу, это должно быть вызвано сетевым общим путем.

Ответ №1:

Убедитесь, что вы используете FileField или ImageField , поскольку он использует Django Media Files system, чтобы правильно указать путь к файлу на вашем сервере.

Вам нужно будет настроить то MEDIA_URL же имя, что и ваша виртуальная папка IIS. Вы также можете создать выделенный FileSystemStorage для прямого доступа к этой виртуальной папке явно.

Проверьте дополнительную информацию в документах Django https://docs.djangoproject.com/en/3.1/topics/files /.

О виртуальном каталоге IIS ознакомьтесь с django-windowsauth пакетом, с помощью команды createwebconfig управления вы можете автоматически настроить свой веб-сайт IIS и убедиться, что вы правильно настроили виртуальный каталог. https://github.com/danyi1212/django-windowsauth