当我在urls.py
:
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)
如果有,请提供给我测试,谢谢。
答案 0 :(得分:0)
有一种方法可以避免这个问题。
在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
答案 1 :(得分:0)
静态用于在本地服务器模式下定向静态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。