Можно ли настроить бесплатное веб-приложение на Azure с помощью статических файлов?
Я пытаюсь развернуть свой первый проект Django, но по какой-то причине статические файлы не работают должным образом.
Когда я проверяю статическую директорию в моем SSH
, она показывает, что файлы там есть, но шаблон их не видит.
Мои настройки:
STATIC_ROOT = BASE_DIR / "static"
STATIC_URL = "static/"
STATICFILES_DIRS = [
BASE_DIR / "assets"
]
Я не смог найти на stack overflow ответов, которые могли бы мне помочь, поэтому я спросил chatGPT, и он сказал, что мне нужно создать хранилище в Azure. Когда я спросил его, есть ли бесплатные планы хранения, он сказал, что нет, но я не должен платить много, и направил меня к калькулятору цен, который показал 21 доллар за месяц.
В этом приложении есть забавный static
, содержащий только base.css
и фотографию гриба. Действительно ли я должен платить за него $21 или даже больше в месяц?
Интересно, есть ли другой способ, кроме создания хранилища, или, возможно, цены в калькуляторе были неверными.
Код:
https://github.com/JJDabrowski/Shroomcast
Чтобы успешно обслуживать статические файлы в производстве, я использовал WhiteNoise и развернул его в Azure App Service.
Я использовал ваш код из git-репо и внес необходимые изменения.
Чтобы использовать whitenoise, я добавил в файл settings.py следующие строки, как показано ниже:
Примечание: добавьте промежуточное ПО whitenoise после промежуточного ПО безопасности.
settings. py:
INSTALLED_APPS = [
'otherInstalledApps
"whitenoise.runserver_nostatic",
]
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'whitenoise.middleware.WhiteNoiseMiddleware',
'other middlewares'
]
STATIC_ROOT = BASE_DIR / "static"
STATIC_URL = "static/"
STATICFILES_DIRS = [
BASE_DIR / "assets"
]
STATICFILES_STORAGE = ('whitenoise.storage.CompressedManifestStaticFilesStorage')
Я добавил белый шум в файл requirements.txt, как показано ниже.
requirements.txt:
Django==4.2.1
requests==2.31.0
whitenoise==6.6.0
Я выполнил приведенные ниже команды для установки whitenoise и сбора статических файлов для производства.
pip install whitenoise
python manage.py collectstatic
python manage.py migrate
LocalOutput:
Он был успешно развернут в службе приложений azure.
Azure App Service Output: