当我在urls.py
中添加STATIC_URL时:
urlpatterns = [...]+static(settings.STATIC_URL)
但是我在网址上得到了^static\/(?P<path>.*)$
。
不应该是^static/(?P<path>.*)$
?像^media/(?P<path>.*)$
。
在settings.py
:
STATIC_URL = '/static/'
STATIC_ROOT = BASE_DIR + '/static/'
STATICFILES_DIRS = (
os.path.join(BASE_DIR, 'static'),
)
如何解决这个问题?还是有另一种方法来取代
+static(settings.STATIC_URL)
如果有,请提供给我测试,谢谢。
有一种方法可以避免这个问题。在urls.py
:
from django.conf.urls.static import serve
if settings.DEBUG:
urlpatterns += [
url(r'^static/(?P<path>.*)$', serve, {
'document_root': settings.STATIC_ROOT
})
]
结果将是这样的:
^media/(?P<path>.*)$
^static/(?P<path>.*)$ # this is as the same with the media
Static用于在本地服务器模式下引导静态URL。不幸的是static(settings.STATIC_URL)
似乎有点破碎。
这似乎适用于当前的django(2.2):
from django.conf.urls.static import serve
urlpatterns += [
path(settings.STATIC_URL[1:], serve, {'document_root': settings.STATIC_ROOT })
]
运行./manage.py collectstatic
后,本地服务器将正确提供所有静态文件。包括django_debug。