STATIC_ROOT
默认值:None(在开发环境中为此默认值)
collectstatic
收集静态文件进行部署的目录的绝对路径。
示例:“/var/www/example.com/static/”
如果启用了staticfiles contrib
app(如在默认项目模板中),则collectstatic
管理命令将将静态文件收集到此目录中。
警告
这应该是一个最初的空目标目录,用于将静态文件从永久位置收集到一个目录中,以方便部署; 它不是永久存储静态文件的地方。
您应该在静态文件的查找器(默认情况下是静态/应用程序子目录以及STATICFILES_DIRS
中包含的任何目录)中找到的目录中执行此操作。
STATIC_URL
默认值:None
引用位于STATIC_ROOT
中的静态文件时使用的URL
。
示例:“/ static /”
或“http://static.example.com/”
如果不是 None,这将被用作资产定义(Media类
)和staticfiles
应用程序的基本路径。
如果设置为非空值,则它必须以斜杠结尾。
您可能需要将这些文件配置为在开发中提供服务,并且在生产中肯定需要这样做。
STATICFILES_DIRS
默认值:[]
(空列表)
此设置定义如果FileSystemFinder
查找器启用,staticfiles
应用程序将遍历的其他位置,例如 如果您使用collectstatic
或findstatic
管理命令或使用静态文件服务视图。
应将此设置为包含其他文件目录的完整路径的字符串列表,例如:
STATICFILES_DIRS = [
"/home/special.polls.com/polls/static",
"/home/polls.com/polls/static",
"/opt/webfiles/common",
]
请注意,这些路径应使用Unix
风格的正斜杠,即使在Windows
上(例如“C:/ Users / user / mysite / extra_static_content”
)也是如此。
开发环境中的配置:
配置静态文件
1、确保您的INSTALLED_APPS
中包含django.contrib.staticfiles
。
2、在您的设置文件中,定义STATIC_URL
,例如:
STATIC_URL ='/ static /'
3、在您的模板中,您可以对网址进行硬编码,如最好使用静态模板标签通过使用已配置的/static/my_app/example.jpg
,或者STATICFILES_DIRS
存储来构建给定相对路径的URL 切换到用于提供静态文件的内容传送网络(CDN))。
{% load static %}
<img src="{% static "my_app/example.jpg" %}" alt="My image"/>
将静态文件存储在应用程序中的静态文件夹中。 例如my_app / static / my_app / example.jpg
。
4、您的项目可能还将具有与特定应用程序无关的静态资产。 除了在应用程序中使用静态/目录之外,还可以在设置文件中定义一个目录列表(STATICFILES_DIRS
),Django还将查找静态文件。 例如:
STATICFILES_DIRS = [
os.path.join(BASE_DIR, "static"),
'/var/www/static/',
]
部署
django.contrib.staticfiles
提供了一个方便的管理命令,用于在单个目录中收集静态文件,以便您轻松地为其提供服务。
1、将STATIC_ROOT
设置设置为要从中提供这些文件的目录,例如:
STATIC_ROOT =“/var/www/example.com/static/”
2、运行collectstatic
管理命令:
$ python manage.py collectstatic
这将将所有文件从静态文件夹复制到STATIC_ROOT
目录中。
3、使用您选择的Web服务器来提供文件。