Flask — запрос GET к «статическому» каталогу возвращает ошибку 404

В документации Flask указано:

Динамические веб-приложения также нуждаются в статических файлах. Обычно оттуда берутся файлы CSS и JavaScript. В идеале ваш веб-сервер настроен так, чтобы обслуживать их за вас, но во время разработки Flask может делать и это. Просто создайте папку с именем static в вашем пакете или рядом с вашим модулем, и она будет доступна в /static в приложении.

Но в моем веб-приложении, когда я пытаюсь получить доступ к localhost:5000/static/, я получаю ошибку 404 в браузере. Еще более странно то, что когда я запускаю его в режиме отладки, я получаю 200 (хорошо) в терминале и 404 в браузере.

Не могли бы вы объяснить, что происходит? Мне нужен список каталогов моего статического каталога в браузере.


person agdhruv    schedule 16.05.2017    source источник


Ответы (2)


Файлы, которые вы поместите в папку /static, будут доступны, но flask не выводит список каталогов. Таким образом, если вы поместите script.js в /static/js, например, вы сможете GET /static/js/script.js, даже если GET /static будет 404.

person Jules Olléon    schedule 16.05.2017

Вы получаете 404, потому что ресурс не может быть возвращен как есть. Вы получаете 200, потому что ресурсы «существуют» в том смысле, что есть статическая папка.

Попробуйте это:

http://packages.python.org/Flask-AutoIndex/

Вы можете открыть содержимое каталога и показать его в браузере и т. д.

person JacobIRR    schedule 16.05.2017
comment
Итак, первоначально Flask не будет отображать файлы в static для меня, когда я GET его, верно? - person agdhruv; 17.05.2017
comment
Правильно, вы должны включить список каталогов для любого веб-сервера, и в этом случае пакет Flask-AutoIndex является удобным для Flask методом. - person JacobIRR; 17.05.2017