Как получить доступ к файлу из внешней папки на флеш-сервере? - PullRequest
1 голос
/ 10 июля 2019

Я новичок в flask и очень озадачен тем, что включаю библиотеки из внешних папок в шаблон html. Я знаю, как включить из папки static, но я хочу хранить свой код и файлы библиотеки в отдельных папках. Итак, моя структура каталогов выглядит примерно так:

./main_directory
|
|_./Code
| |_./flask_script.py
| |_./static
|
|_./Libraries

Я знаю о функции send_from_directory(), но не совсем понимаю, как ее использовать. Самое распространенное, что я видел, это:

@app.route('/cdn/<path:filename>')
def custom_static(filename):
    return send_from_directory(app.config['CUSTOM_STATIC_PATH'], filename)

Который из другого ответа StackOverflow. Но что здесь cdn в этом случае? Кроме того, какое значение app.confg['CUSTOM_STATIC_PATH'] установлено в? И что все должно быть сделано в шаблоне HTML, чтобы сделать эту работу?

1 Ответ

1 голос
/ 10 июля 2019

В общем, использование статических файлов с фляжкой полезно только для разработки. На самом деле, при запуске в прямом эфире рекомендуется обслуживать статические файлы, например, иметь веб-сервер перед вашим приложением и делегировать файл, обслуживающий его, или помещать файлы в хранилище файлов, как AWS S3.

Что касается вашего custom_static маршрута, cdn в данном случае является просто префиксом URL (может быть любым), вы можете затем обращаться к статическим ресурсам из шаблонов, таких как <img src="/cdn/test.jpg">. (Префикс cdn может дать вам подсказку, что эти файлы впоследствии перемещаются в CDN и не обрабатываются флягой в производстве).

app.config['CUSTOM_STATIC_PATH'] должен быть установлен как абсолютный путь к каталогу, содержащему ваши пользовательские статические файлы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...