设置
设置STATIC_URL为在获取静态文件时的路由,例如设置为/static/
把静态文件放到app中的对应位置
my_app/static/my_app/example.jpg
使用的namespace的方式和模板一样
如果有文件是不属于某个特殊app的,那么可以放在项目中并通过STATICFILES_DIRS来设置
STATICFILES_DIRS = [
os.path.join(BASE_DIR, "static"),
'/var/www/static/',
]
开发时
在开发阶段,如果设置了DEBUG为True,可自动提供静态文件服务。只要包含django.contrib.staticfiles在INSTALLED_APPS中即可,或者:
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
# ... the rest of your URLconf goes here ...
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
但是这样需要先设置STATIC_ROOT并把所有静态文件放到这个路径下,另外测试时使用的LiveSeverTestCase也需要这样处理。当然也可以使用[django.contrib.staticfiles.testing.StaticLiveServerTestCase]
部署
就是设置STATIC_ROOT并运行
python manage.py collectstatic
这样把所有用到的静态文件都收集到这个路径底下了,然后可以使用服务器的静态文件服务机制
网友评论