Я установил приложение Flask на сервере cPanel с CloudLinux. Я использовал функцию установки Python App.
Приложение находится в папке / home / user / app. URL приложения: https://www.example.com/app
cPanel использует Phusion Passenger для работы приложения с Apache.
Когда я создал приложение, была создана папка / home / user / app / public, и предположительно все изображения должны идти туда.
Приложение работает хорошо, но все URL-адреса изображений в общей папке выдают ошибку 404. Я пробовал разные URL, такие как https://www.example.com/app/image.jpg, и https://www.example.com/app/public/image.jpg. Всегда 404.
Это первый раз, когда я использую эту функцию установки приложения Python.
Кто-нибудь знает, какой правильный URL-адрес использовать или что необходимо настроить для предоставления изображений?
Спасибо!
EDIT:
URL-адрес изображения создается с помощью url_for:
return url_for('general.send_data_file', filename=key)
Сгенерированный URL выглядит правильно
Я добавил маршрут для обслуживания файлов:
@general_blueprint.route('/public/data_store/data/<filename>', methods=['GET'])
def send_data_file(filename):
return send_from_directory(app.config.get('DATA_FOLDER'), filename)
Я получаю 404 вместо файла.
Например, сгенерированный URL-адрес файла /app/public/data_store/data/test.jpg.
Приложение работает в / app, и все созданные маршруты работают и не используют / app при определении маршрута. Я добавил вызов app.logger.info в файл send_data_file, и он вызывается.
app.config.get ['DATA_FOLDER'] равно ./public/data_store/data
Нет ошибок в журнале от send_from_directory.