Google App Engine не находит статические файлы для проекта django, а также файл .txt, от которого зависит мой веб-сайт - PullRequest
0 голосов
/ 20 марта 2019

Итак, я создал сайт на Django и хочу развернуть его в Google App Engine, Сам сайт развернут, но без всех статических файлов.

Кроме того, в файле .txt есть набор данных, от которого зависит запуск моего веб-сайта (это проект машинного обучения.), Но он не может его найти, и браузер просто выдает ошибку "файл не найден".

было бы очень круто, если бы кто-нибудь мог мне помочь.

вот файл app.yaml.

runtime: python37
entrypoint: gunicorn -b :$PORT predictweb.wsgi
handlers:
- url: /static
  static_dir: static/
- url: /.*
  script: auto

1 Ответ

0 голосов
/ 20 марта 2019

По крайней мере в стандартной среде 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...