基本的な Django-nonrel アプリを Appengine で正常に起動して実行することができました。テンプレートは適切にレンダリングされていますが、静的コンテンツは 404 応答を返します。
`python manage.py runserver' を使用して起動された開発サーバーの静的コンテンツには問題はありません。
の関連する行は次のstatic.py
とおりです。
STATIC_URL = '/static/'
STATICFILES_FINDERS = (
'django.contrib.staticfiles.finders.FileSystemFinder', # Refers to PROJECT_DIR/static
'django.contrib.staticfiles.finders.AppDirectoriesFinder', # Appname/static
)
STATICFILES_DIRS = (os.path.join(PROJECT_DIR, 'static'),)
関連するテンプレートで:
{% extends "base.html" %}
{% load staticfiles %}
{% block title %}Adding Objects{% endblock %}
{% block content %}
<p>Placeholder for Objects</p>
<img src="{% static "test_pattern.gif" %}">
<img src="{% static "sample_overlay.gif" %}">
{% endblock %}
myproject/static
これにより、ディレクトリとディレクトリ内の静的ファイルがmyproject/myapp/static
開発サーバーで正常に提供されています ( python manage.py runserver
)。
これは私のapp.yaml
です:
application: appname
version: 1
runtime: python27
api_version: 1
threadsafe: yes
builtins:
- remote_api: on
inbound_services:
- warmup
libraries:
- name: django
version: latest
handlers:
- url: /_ah/queue/deferred
script: djangoappengine.deferred.handler.application
login: admin
- url: /_ah/stats/.*
script: djangoappengine.appstats.application
- url: /media/admin
static_dir: django/contrib/admin/media
expiration: '0'
- url: /.*
script: djangoappengine.main.application
これを修正する方法の手がかりはありますか?Appengine Web サーバーに静的ファイルを処理させたくありません。すべてを Django 経由でルーティングしたいと考えています (少なくとも今のところは)。したがって、私の場合、このような解決策は実際には受け入れられません。
編集:私はこれでこれを簡単に回避でき、app.yaml
からすべての静的ファイルを提供しますprojectdir/static
。
- url: /static
static_dir: static
しかし、この解決策は汚いようです。すべてDjangoに任せたいと思います。