GAE上的Django:无法找到资源
问题描述:
我有一个Django应用程序呈现一些网页,让人们提交一些信息到我的数据库。项目结构是这样的:GAE上的Django:无法找到资源
--wun/
--manage.py
--templates/uploader/
--some_html_files.html
--static/uploader/
--css_files.css
--wun/
--settings.py
--urls.py
--wsgi.py
--uploader/
--app_files.py
因此该项目被称为'wun'
和我的应用程序被称为'uploader'
。该结构是典型的Django。
在Django的开发服务器本地运行它没有问题,但是当它部署到GAE时,我在访问的每个URL端点上获得404 Not Found
。我在Django设置中打开了DBUG
,但没有其他信息。我可以在GAE的日志中看到访问过的端点。
我想也许GAE找不到静态文件和模板?我有以下设置在Django:
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [BASE_DIR,os.path.join(BASE_DIR, 'templates')],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
STATIC_URL = '/static/'
在App Engine:
handlers:
- url: /static
static_dir: static
- url: /static/uploader
static_dir: /static/uploader
- url: .*
script: wun.wsgi.application
但我不认为前两个网址,用在这里,因为我不直接服务页面。所有页面都由模板的Django视图呈现。
答
事实证明,GoogleAppEngineLauncher自动在我的项目文件夹下创建了另一个文件夹,它使用的应用程序设置没有任何内容。所以当访问服务器时,实际上没有运行Django应用程序,它只是一个空的服务器。