Служить статическому файлу с помощью App Engine - PullRequest
19 голосов
/ 10 апреля 2011

Я создал приложение App Engine.До сих пор у меня есть только несколько файлов HTML для обслуживания.Что я могу сделать, чтобы App Engine обслуживал файл index.html при каждом посещении http://example.appengine.com/?

В настоящее время мой файл app.yaml выглядит следующим образом:

application: appname
version: 1
runtime: python
api_version: 1

handlers:

- url: /
  static_dir: static_files

Ответы [ 5 ]

37 голосов
/ 10 апреля 2011

Это должно сделать то, что вам нужно:

https://gist.github.com/873098

Объяснение: В App Engine Python можно использовать регулярные выражения в качестве обработчиков URL-адресов в app.yaml и перенаправлять все URL-адреса наиерархия статических файлов.

Пример app.yaml:

application: your-app-name-here
version: 1
runtime: python
api_version: 1

handlers:
- url: /(.*\.css)
  mime_type: text/css
  static_files: static/\1
  upload: static/(.*\.css)

- url: /(.*\.html)
  mime_type: text/html
  static_files: static/\1
  upload: static/(.*\.html)

- url: /(.*\.js)
  mime_type: text/javascript
  static_files: static/\1
  upload: static/(.*\.js)

- url: /(.*\.txt)
  mime_type: text/plain
  static_files: static/\1
  upload: static/(.*\.txt)

- url: /(.*\.xml)
  mime_type: application/xml
  static_files: static/\1
  upload: static/(.*\.xml)

# image files
- url: /(.*\.(bmp|gif|ico|jpeg|jpg|png))
  static_files: static/\1
  upload: static/(.*\.(bmp|gif|ico|jpeg|jpg|png))

# index files
- url: /(.+)/
  static_files: static/\1/index.html
  upload: static/(.+)/index.html

# redirect to 'url + /index.html' url.
- url: /(.+)
  static_files: static/redirector.html
  upload: static/redirector.html

# site root
- url: /
  static_files: static/index.html
  upload: static/index.html

Для обработки запросов к URL-адресам, которые не заканчиваются распознанным типом (.html, .png и т. Д.) Или / вам нужно перенаправить эти запросы на URL + /, чтобы index.html для этого каталога обслуживался.Я не знаю, как это сделать внутри app.yaml, поэтому я добавил перенаправитель javascript.Это также можно сделать с помощью крошечного обработчика Python.

redirector.html:

<!DOCTYPE html>
<html lang="en">
  <head>
    <script language="JavaScript">
      self.location=self.location + "/";
    </script>
  </head>
  <body>
  </body>
</html>
9 голосов
/ 11 ноября 2013

Это можно сделать с помощью (app.yaml):

handlers:
- url: /appurl
  script: myapp.app

- url: /(.+)
  static_files: staticdir/\1
  upload: staticdir/(.*)

- url: /
  static_files: staticdir/index.html
  upload: staticdir/index.html
8 голосов
/ 10 апреля 2011

Если вы пытаетесь сопоставить / с index.html:

handlers:
- url: /
  upload: folderpath/index.html
  static_files: folderpath/index.html

url: будет соответствовать пути и поддерживает регулярное выражение.

- url: /images
  static_dir: static_files/images

Так что, если ваш файл изображения хранится в static_files/images/picture.jpg, используйте это:

<img src="/images/picture.jpg" />
1 голос
/ 10 апреля 2011

В WEB-INF / web.xml положить:

  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
  </welcome-file-list>
0 голосов
/ 08 мая 2018

Вот app.yaml о том, как я запустил сайт, сгенерированный Jekyll:

runtime: python27
api_version: 1
threadsafe: true


handlers:
- url: /
  static_files: _site/index.html
  upload: _site/index.html

- url: /assets
  static_dir: _site/assets



  # index files
- url: /(.+)/
  static_files: _site/\1/index.html
  upload: _site/(.+)/index.html

- url: /(.*)
  static_files: _site/\1
  upload: _site/(.*)

- url: /.*
  static_dir: _site
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...