如何使用 Django 和 Whitenoise 来服务器 favicon.ico

gue*_*tli 4 django whitenoise

我对静态文件使用白噪声,效果很好。

但我怎样才能提供该/favicon.ico文件呢?

有一个名为WHITENOISE_ROOT的设置,但我不明白如何使用它。

我想保持 nginx 配置简单并通过 Gunicorn 提供所有文件

Le *_*naw 6

如果您希望这些文件由collectstatic

假设运行后collectstatic,您的favicon.ico文件最终被复制到root位于您STATIC_ROOT目录中的子目录中。

然后,与:

WHITENOISE_ROOT = os.path.join(STATIC_ROOT, 'root')
Run Code Online (Sandbox Code Playgroud)

STATIC_ROOT/root/Whitenoise 将为您的应用程序根目录中的所有文件提供服务。

就您而言,STATIC_ROOT/root/favicon.ico送达时间为/favicon.ico

如果您不希望这些文件被管理collectstatic

您可以root_staticfiles在您的文件夹中创建一个BASE_DIR仅包含您想要提供服务的静态文件的文件夹/

WHITENOISE_ROOT = os.path.join(BASE_DIR, 'root_staticfiles')
Run Code Online (Sandbox Code Playgroud)

BASE_DIR/root_staticfiles/在这种情况下,Whitenoise 将提供应用程序根目录下的所有文件。

更新内容pathlib(2022-10-04)

一段时间以来,settings.pyDjango 创建的默认使用pathlib. 为了与其保持一致,可以os.join/运算符替换调用,例如:

WHITENOISE_ROOT = os.path.join(STATIC_ROOT, 'root')
Run Code Online (Sandbox Code Playgroud)