我的 URL 正则表达式是r'^admin.*/static/admin/(?P<path>.*)$'
,现在它可以匹配admin/static/admin/css/base.css
or admin/123/static/admin/js/actions.js
,但我希望它匹配 url admin/blog/post/static/static/admin/js/actions.js
(现在它不匹配)
我怎么能这样做?
感谢大家的评论。
我的问题是我在 django 中设置了静态 url 路径来存储我的 css/js 文件,就像这样url(r'^static/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.STATIC_ROOT,}),
settings.STATIC_ROOT 是os.path.join(os.path.dirname(os.path.abspath(__file__)), 'static')
但是当我访问管理界面时,所有 css/js 文件都丢失了。因为 admin css 文件存储在其中,django\contrib\admin\static\admin
并且它在 html 文件中的 url 是“static/admin/css/base.css”。我在设置中设置的静态路径中没有这个文件。
我的解决方案是设置另一个 url r'^admin.*/static/admin/(?P<path>.*)$'
,并将文档根设置为 django admin 静态文件路径。但正如我所提到的,当我进入管理主页时,一切正常,当我深入“添加用户”页面时,css 文件仍然丢失。
我还发现一个解决方案是将我的 url 常规更改为r'.*/static/admin/(?P<path>.*)$'
,这对所有事情都很好,但是有没有更好的解决方案?
在我运行 collectstatic 后,在我的静态路径中,我可以找到 admin 文件夹及其 css/js 文件。然后我将我的 url 路径设置为 url(r'^admin/static/(?P.*)$','django.views.static.serve',{'document_root':settings.STATIC_ROOT}), ,it适用于主管理页面,但是当我访问http://localhost/admin/sites/site/static/static/admin/js/admin/RelatedObjectLookups.js
它时仍然无法正常工作,我该如何编写我的 url 路径?