Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python django URL中的文件服务排除错误_Python_Regex_Django_Django Urls - Fatal编程技术网

Python django URL中的文件服务排除错误

Python django URL中的文件服务排除错误,python,regex,django,django-urls,Python,Regex,Django,Django Urls,我在Django中的urls.py文件有一个问题,它允许我在任何地方访问我的管理界面,在任何地方加载图像。如果有人能看一下,请提前谢谢 from django.conf.urls import patterns, include, url from django.contrib import admin from django.conf import settings urlpatterns = patterns('', (r'^admin/doc/', include('django

我在Django中的urls.py文件有一个问题,它允许我在任何地方访问我的管理界面,在任何地方加载图像。如果有人能看一下,请提前谢谢

from django.conf.urls import patterns, include, url
from django.contrib import admin
from django.conf import settings

urlpatterns = patterns('',
    (r'^admin/doc/', include('django.contrib.admindocs.urls')),
    (r'^admin/', include(admin.site.urls)),

    url(r'^admin/files/(?P<filepath>.*)$', 'my.app.admin.serv_backup_files', name='admin-file-serv'),


    (r'^(?P<restaurant_slug>[^(admin)][a-zA-B-_0-9]+)$', TemplateView.as_view(template_name=os.path.join(settings.G_DOC_ROOT, 'index.html'))),
    (r'^(?P<path>[^(admin)].*)$', 'django.views.static.serve', {'document_root': settings.G_DOC_ROOT}),
)
从django.conf.url导入模式,包括,url
从django.contrib导入管理
从django.conf导入设置
urlpatterns=模式(“”,
(r“^admin/doc/”,包括('django.contrib.admindocs.url'),
(r“^admin/”,包括(admin.site.url)),
url(r'^admin/files/(?P.*)$,'my.app.admin.serv_backup_files',name='admin-file-serv'),
(r'^(?P[^(admin)][a-zA-B-_0-9]+)$,TemplateView.as_视图(template_name=os.path.join(settings.G_DOC_ROOT,'index.html')),
(r'^(?P[^(admin)].*)','django.views.static.service',{'document_root':settings.G_DOC_root}),
)
问题是,通过这种配置,我在runserver的控制台上看到了如下内容

“GET/img/field_bg.gif HTTP/1.1”404

对于所有的图像,它们都应该是静态服务的

我可以从最后一个模式中删除
[^(admin)]
,网站将得到很好的服务,只是它会尝试将管理界面重新路由到静态文件


提前感谢您帮助我将静态文件、无子域模板查看和管理员正常访问结合起来。

看起来您需要添加到设置和URL中

看起来您需要添加到设置和URL中

我不太了解python正则表达式,但在我使用过的任何其他风格中,
[^(admin)]
将匹配一个单个字符,除了“”(”或“a”或“d”或“m”或“I”或“n”或“”)。字符类(
[…]
)匹配单个字符,而不是短语

如果您试图不匹配“(admin)”,则可以使用负前瞻,如下所示:

^(?P<restaurant_slug>(?!\(admin\))[a-zA-B-_0-9]+)$
^(?P(?)(admin\)[a-zA-B-\u 0-9]+)$
或者,更可能的情况是,您试图与“管理员”不匹配:

^(?P(?!admin)[a-zA-B-_0-9]+)$

我对python正则表达式不太熟悉,但在我使用过的任何其他风格中,
[^(admin)]
都会匹配一个单个字符,该字符除了“”(”或“a”或“d”或“m”或“I”或“n”或“”)。字符类(
[…]
)匹配单个字符,而不是短语

如果您试图不匹配“(admin)”,则可以使用负前瞻,如下所示:

^(?P<restaurant_slug>(?!\(admin\))[a-zA-B-_0-9]+)$
^(?P(?)(admin\)[a-zA-B-\u 0-9]+)$
或者,更可能的情况是,您试图与“管理员”不匹配:

^(?P(?!admin)[a-zA-B-_0-9]+)$

我实际上使用的是Django 1.4,在此版本中,此设置已被弃用(),但我确实可能愿意切换到staticfiles contrib包。现在我只是想解决我的问题,希望它能更快。我实际上使用的是Django 1.4,在这个版本中,这个设置是不推荐的(),但我确实愿意切换到staticfiles contrib包。现在我只是想解决我的问题,希望它能更快。现在开始有趣了:第一个,用的其实不是问题,但是第二个,用的是直接发球,是的!最后,您的建议使静态服务regex工作良好,我也在第一个表达式中使用了它,但出于任何原因,另一个版本也在那里工作。是的,我做了几个测试,清空缓存等等。现在开始有趣了:第一个,实际上没有问题,但是第二个,直接服务,是的!最后,您的建议使静态服务regex工作良好,我也在第一个表达式中使用了它,但出于任何原因,另一个版本也在那里工作。是的,我做了几个测试,清空缓存,等等。。。