Django css 和 javascript 应用程序未在生产中提供

问题描述 投票:0回答:2

我有一个 django 项目,在开发模式下 css 加载得很好但在生产中没有。

在我的 settings.py 文件中,我设置了这些 trhee 变量

STATIC_ROOT = BASE_DIR / 'staticfiles/'
STATIC_URL = 'static/'
STATICFILES_DIRS = [BASE_DIR / 'static',]

我也设置了

DEBUG = False

当我运行 python manage.py collectstatic 命令时,staticfiles 文件夹会正确接收文件。我在项目的根目录中创建了一个静态文件夹以在那里安装引导程序,同样,在开发中运行得很好。我正在通过 XAMPP 使用 Apache 服务器,因为我在 Windows 上。接下来是项目的配置:

LoadFile "C:/Python310/python310.dll"
LoadModule wsgi_module "C:/Users/life/.virtualenvs/outgoing-qJCH8A9k/lib/site-packages/mod_wsgi/server/mod_wsgi.cp310-win_amd64.pyd"
WSGIPythonHome "C:/Users/life/.virtualenvs/outgoing-qJCH8A9k"

WSGIScriptAlias /outgoing "D:/DEV/PYTHON/GASTOS/software/outgoing/project/wsgi.py" application-group=%{GLOBAL}
WSGIPythonPath "D:/DEV/PYTHON/GASTOS/software/outgoing"

<Directory "D:/DEV/PYTHON/GASTOS/software/outgoing/project">
<Files wsgi.py>
Require all granted
</Files>
</Directory>

Alias /static/ "D:/DEV/PYTHON/GASTOS/software/outgoing/staticfiles/"

<Directory "D:/DEV/PYTHON/GASTOS/software/outgoing/staticfiles">
Require all granted
</Directory>`

重点是,应用程序加载良好但没有引导 css 和 javascript 文件。浏览器控制台也告诉这个。

Refused to apply style from 'http://localhost/outgoing/static/node_modules/bootstrap/dist/css/bootstrap.min.css' because its MIME type ('text/html') is not a supported stylesheet MIME type, and strict MIME checking is enabled.

GET http://localhost/outgoing/static/node_modules/bootstrap/dist/js/bootstrap.bundle.min.js

请帮忙

css django apache mime
2个回答
0
投票

对于

DEBUG=False
,预计静态文件夹将位于外部资源上,因为这会给站点带来漏洞。


0
投票

如果您在生产环境中,建议使用 Django 的 WhiteNoise 库,这是直接在生产环境中提供静态文件/资产的最简单方法之一。

pip install whitenoise

在你的settings.py中

MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'whitenoise.middleware.WhiteNoiseMiddleware', 
......,
]
# 
STATIC_ROOT = BASE_DIR / 'staticfiles'
STATIC_URL = '/static/'
#

可选地,您可以在提供静态文件时减小它们的大小(这样效率更高)。只需将以下内容添加到 settings.py 的底部:

STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'

根据您的生产服务器,您可以通过以下方式收集静态信息:

python manage.py collectstatic
© www.soinside.com 2019 - 2024. All rights reserved.