whitenoise.django与Django静态文件收集器的集成方法
Whitenoise 是一个 Django 应用程序,可帮助处理静态文件(例如 CSS 和 JavaScript 文件)的分发。静态文件收集器则是 Django 中用于将静态文件收集到单个文件夹中以便生产环境部署的一个工具。下面是 Whitenoise.django 与 Django 静态文件收集器的集成方法及使用例子:
1. 首先,在 Django 项目的 settings.py 文件中安装 Whitenoise:
INSTALLED_APPS = [ ... 'whitenoise.runserver_nostatic', ... ] MIDDLEWARE = [ ... 'whitenoise.middleware.WhiteNoiseMiddleware', ... ] STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'
2. 在项目的 requirements.txt 文件中添加 Whitenoise 依赖:
whitenoise
3. 运行 pip install -r requirements.txt 安装依赖。
4. 在项目的根目录创建一个名为 static 的文件夹,并将项目中的静态文件(CSS,JavaScript 等)放入其中。
5. 在 settings.py 文件中配置 STATIC_URL 和 STATIC_ROOT:
STATIC_URL = '/static/' STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
6. 在项目的根目录中运行以下命令来收集静态文件:
python manage.py collectstatic
7. 运行以下命令以启动项目服务器:
python manage.py runserver
现在,您可以访问项目的静态文件了。Whitenoise 和静态文件收集器将动态管理静态文件,并提供它们的 URL。
以下是一个使用 Whitenoise 和 Django 静态文件收集器的简单示例:
1. 创建一个新的 Django 项目:
django-admin startproject myproject
2. 进入项目目录:
cd myproject
3. 创建一个新的 Django app:
python manage.py startapp myapp
4. 在 myapp 的目录下创建一个名为 static 的文件夹,并在其中创建一个名为 styles.css 的 CSS 文件:
myproject/myapp/static/styles.css
5. 打开 settings.py 文件并添加 Whitenoise 相关配置:
INSTALLED_APPS = [ ... 'whitenoise.runserver_nostatic', ... ] MIDDLEWARE = [ ... 'whitenoise.middleware.WhiteNoiseMiddleware', ... ] STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage' STATIC_URL = '/static/' STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
6. 在项目的根目录中创建一个名为 requirements.txt 的文件,并添加 Whitenoise 依赖:
whitenoise
7. 运行以下命令以安装依赖:
pip install -r requirements.txt
8. 运行以下命令来收集静态文件:
python manage.py collectstatic
9. 在 myapp/views.py 文件中定义一个简单的视图函数用于显示样式文件:
from django.shortcuts import render
def index(request):
return render(request, 'index.html')
10. 在 myproject/urls.py 文件中添加路由规则:
from django.contrib import admin
from django.urls import path
from myapp.views import index
urlpatterns = [
path('admin/', admin.site.urls),
path('', index, name='index'),
]
11. 运行以下命令以启动项目服务器:
python manage.py runserver
现在,您可以在浏览器中访问 http://localhost:8000/ ,并应该能够看到 CSS 文件被加载和应用的效果。
上述示例演示了如何在 Django 项目中使用 Whitenoise 和静态文件收集器进行静态文件的管理和分发。通过使用 Whitenoise,您可以确保在生产环境中提供静态文件的高性能和高可靠性。
