我对静态文件使用白噪声,它工作正常。
但是我怎样才能提供/favicon.ico
文件?
有一个名为WHITENOISE_ROOT的设置,但我不明白如何使用它。
我想保持我的 nginx 配置简单并通过 gunicorn 提供所有文件
我对静态文件使用白噪声,它工作正常。
但是我怎样才能提供/favicon.ico
文件?
有一个名为WHITENOISE_ROOT的设置,但我不明白如何使用它。
我想保持我的 nginx 配置简单并通过 gunicorn 提供所有文件
collectstatic
让我们假设在运行之后collectstatic
,您的favicon.ico
文件最终被复制到root
位于您的STATIC_ROOT
目录中的子目录中。
然后,使用:
WHITENOISE_ROOT = os.path.join(STATIC_ROOT, 'root')
Whitenoise 将在STATIC_ROOT/root/
您的应用程序的根目录中提供所有文件。
在您的情况下,STATIC_ROOT/root/favicon.ico
将在/favicon.ico
.
collectstatic
您可以在其中有一个root_staticfiles
文件夹,BASE_DIR
其中仅包含您要在其中提供的静态文件/
。
WHITENOISE_ROOT = os.path.join(BASE_DIR, 'root_staticfiles')
在这种情况下,Whitenoise 将在BASE_DIR/root_staticfiles/
您的应用程序的根目录中提供所有文件。
我有一个 django 应用程序,它使用 Whitenoise(托管在 Heroku 上)并从我的静态文件的单独文件夹中提供我的 favicon。
root_files
在 path 处创建一个文件夹BASE_DIR/root_files
。
在 settings.py 中:
WHITENOISE_ROOT = os.path.join(BASE_DIR, 'root_files')
有关真实的代码示例,请查看Mozilla 的 Bedrock 存储库。他们在settings.pyBASE/root_files
中有网站图标并进行配置WHITENOISE_ROOT
您可以根据hanleyhansen 的这个答案在基本模板中添加以下行(由所有其他模板使用):
<link rel="shortcut icon" type="image/png" href="{% static 'favicon.ico' %}"/>
或者,您可以通过 wim 编写一个类似此答案的重定向视图,只需稍作修改:
from django.views.generic.base import RedirectView
from django.conf.urls.static import static
re_path(r'^favicon\.ico$', RedirectView.as_view(url=static('favicon.ico'), permanent=True))