#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