По крайней мере в стандартной среде 1-го поколения (python 2.7) статические файлы / каталоги по умолчанию будут отделены от кода приложения, необходимо добавить application_readable: true
, чтобы также иметь копию вместе с кодом приложения.Подробности см. В сообщении, связанном с комментарием @ lusitanica.
Но это неясно указано во втором поколении handlers
doc .Разделение вроде как подразумевается:
Все файлы в данном каталоге загружаются как статические файлы, и ни один из них не может быть запущен как сценарий.
Но нетупоминание о application_readable
.Тем не менее, я думаю, что стоит попробовать, другие конфиги некоторое время не документировались, но они работали, см. Комментарии к к этому посту .
Еще одна мысль, предполагая, что, возможно, вы следили за некоторымиобщее руководство по django, которое обычно показывает, как сервировать статический контент через django - то есть через приложение, а не через CDN-подобный метод GAE (то есть, как оно подается, если настроено в app.yaml
).
Скорее всего, заставить работать через app.yaml
.По крайней мере, я вижу в Запуск Django в стандартной среде App Engine .Может быть, проверьте ваш settings.py
, я вижу в документации github версии в документе:
# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/2.1/howto/static-files/
STATIC_ROOT = 'static'
STATIC_URL = '/static/'
Но я не пользователь django, не могу помочь с более подробной информацией.
Если ничего из вышеперечисленного не работает, вы также можете просто взять конфигурацию static_dir
из app.yaml
и позволить django обслуживать статический контент.Я знаю, что это не оптимально - использование циклов ЦП приложения.
Что касается файла .txt
,
Exception Value: /srv/pages\songdatabase1.txt not found
показывает пару проблем:
- выСмешиваем Windows Windows разделитель
\
с * nix one /
.Вам нужен * nix one в GAE, но лучше просто использовать os.path.join()
вместо того, чтобы вручную манипулировать путем - вы используете полный путь - вы должны использовать пути относительно top dir приложения (гдефайл
app.yaml
существует).В вашем случае это должно быть pages/songdatabase1.txt