Django 1.5索引页面未在部署服务器上显示(但在开发服务器上有效)

时间:2013-12-22 02:53:35

标签: python django nginx gunicorn

我加入社区提出这个问题,我相信我已经完成了我的搜索答案的作业,我似乎无法解决这个问题(希望如此)。如果您不这么认真,请指出正确的问题。

我有一个Cent OS VPS,我试图使用Django 1.5主持一个网站,同时在我的MacBook pro(OS X 10.6)上开发它实际安装了Django 1.4(还没有更新它 - 想象一下就足以让我开始了。)

我已经设法使用nginx和gunicorn服务器在“民意调查”应用程序中部署测试站点。除了主索引页面,即将浏览器指向~my-domain.com /,这一事实除外:

“此服务器上找不到请求的网址。”

但民意调查应用程序,即~my-domain.com / polls /,正在按预期工作。

此外,当我更改“settings.py”以使DEBUG = TRUE并使用命令

> python manage.py runserver 0.0.0.0:8001

在部署机器(VPS)上运行开发服务器,索引页面正常工作。当我在Mac上使用runserver时,我也可以看到索引页面。

我的项目层次结构如下:

+dj_site
|- manage.py
|+dj_site
||-__init__.py
||-settings.py
||-urls.py
||-views.py
||-wsgi.py
|+index
||-__init__.py
||-models.py
||-settings.py
||-urls.py
||-views.py
||-tests.py
||+templates
|||+index
||||-index.html
|+polls
||-__init__.py
||-models.py
||-settings.py
||-urls.py
||-views.py
||-tests.py
||+static
|||+polls
||||-style.css
||+templates
|||+index
||||-index.html
|+proj_static
||-base.css
|+media
||-foo.txt

我已将代码的相关部分放在pastebin上以节省空间。

dj_site/settings.py

dj_site / urls.py:

from django.conf.urls import patterns, include, url

# Uncomment the next two lines to enable the admin:
from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',
    # Uncomment the next line to enable the admin:
    url(r'^admin/', include(admin.site.urls)),

    # Home /
    url(r'^$', include('index.urls', namespace="index")),

    # for Polls app
    url(r'^polls/',include('polls.urls', namespace="polls")),
)

dj_site /索引/ urls.py:

from django.conf.urls import patterns, url
from index import views

urlpatterns = patterns('',
    # ex:/
    url(r'^$',views.IndexView.as_view(), name='index'),
    )

dj_site /索引/ views.py

from django.http import HttpResponseRedirect, HttpResponse
from django.views.generic import TemplateView

class IndexView(TemplateView):
    template_name = "index/index.html"

对于长消息感到抱歉,但是非常感谢任何指向正确方向的指示。我错过了什么?

提前感谢您的帮助。

修改

对不起伙计们,我解决了这个问题。

查看右侧建议的链接可以引导我: Django dev server works, apache not

所以我重新启动了gunicorn和nginx服务器。 Gunicorn作为守护进程运行,所以我认为我不需要重新启动它 - 但这解决了我的错误。

如果某人正在经历相同的情况,以下命令对我有用:

> sudo service nginx restart
Stopping nginx:                                            [  OK  ]
Starting nginx:                                            [  OK  ]
> ps ax | grep gunicorn
17211 ?        S      0:00 /usr/bin/python /usr/bin/gunicorn dj_site.wsgi:application -- bind=127.0.0.1:<port> --daemon
17216 ?        S      0:00 /usr/bin/python /usr/bin/gunicorn dj_site.wsgi:application --bind=127.0.0.1:<port> --daemon
17218 pts/0    S+     0:00 grep gunicorn
> kill 17211
> kill 17216
> gunicorn dj_site.wsgi:application --bind=127.0.0.1:<port> --daemon

所以它与Django设置没什么关系,但是谢谢你@Ranju我将从现在开始忽略这个标志:)

1 个答案:

答案 0 :(得分:0)

在您的urls.py文件中,更改

url(r'^$', include('index.urls', namespace="index")),

url(r'^', include('index.urls', namespace="index")),

即删除$符号。