我的Django应用程序在“python manage.py runserver .....”下运行时在我的服务器上正常运行但是当我在nginx / fastcgi下运行时,我得到了404.
以下是错误消息:
找不到页面(404)
请求方法:GET
请求网址:blah.youtrain.me/admin/(由于新帐户的StackOverflow限制,我删除了http)
使用youtrainme.urls中定义的URLconf,Django按以下顺序尝试了这些URL模式:
^管理员/ DOC /
^管理员/
当前网址与其中任何一个都不匹配。
无论我在app上的哪个页面转到nginx,它总是会显示相同的错误消息:“当前的网址,与其中任何一个都不匹配。”
在nginx下,如果我只是去blah.youtrain.me,上面的请求URL更改为:blah.youtrain.me//< ---请注意尾随斜杠。但是,在runserver下,请求URL行中没有尾部斜杠。这可能会提供一些见解吗?
任何帮助将不胜感激! :)
以下是此网站的nginx配置:
服务器
{
听80;
server_name blah.youtrain.me;
access_log /home/ytmadmin/public_html/blah.youtrain.me/log/access.log;
error_log /home/ytmadmin/public_html/blah.youtrain.me/log/error.log debug;
#rewrite rule - files
location~ *。+。>(xml | jpg | jpeg | gif | png | ico | css | zip | tgz | gz | rar | bz2 | doc | xls | exe | pdf | ppt | txt | tar | mid | midi | WAV | BMP | RTF | JS | SWF)
{
access_log off;
到期30d;
打破;
}
#python requests
位置/
{
fastcgi_pass 127.0.0.1:8010;
fastcgi_pass_header授权;
fastcgi_intercept_errors off;
include / usr / local / nginx / conf / fastcgi_params;
}
}
我的urls.py
来自django.conf.urls.defaults导入模式,include,url
来自django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('',
(r'^ $','main.views.index'),
(r'^ admin / doc /',include('django.contrib.admindocs.urls')),
#取消注释下一行以启用admin:
(r'^ admin /',include(admin.site.urls)),
)
答案 0 :(得分:3)
我在这里找到了解决方案:https://serverfault.com/questions/134863/nginx-fastcgi-problems-with-django-double-slashes-in-url
在nginx下,我不得不从我的nginx / conf / fastcgi_params文件中删除以下行,一切都很顺利:
fastcgi_param SCRIPT_NAME $ fastcgi_script_name;