Конфигурация Google App Engine app.yaml для /user/.* регулярного выражения

Пытаюсь сделать страницу входа и профиля. Вот файл app.yaml, который отлично работает с '/' и '/ (что угодно)'. Вместо «/ (что-нибудь)» я хотел бы иметь путь как «/user/.*». Я много пробовал, но он отображает только html-часть страницы. Как мне настроить свой app.yaml, чтобы он отображался с полным CSS и JS и работал для '/ (что угодно) / (что угодно)'?

application: My-App-name
version: 1
runtime: python27
api_version: 1
threadsafe: yes


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)

 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


# site root

- url: /.*
  script: main.app

#- url: /user/.*
#  script: main.app

libraries:
- name: jinja2
  version: latest

PS: у меня есть дерево папок,

app.yaml

статические-> CSS, JS, изображения, html файлы

index.yaml main.app


person user3739818    schedule 17.08.2014    source источник


Ответы (1)


Попробуйте что-нибудь вроде:

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

Это будет соответствовать /anything/file.js, а также /anything/anything/file.js, а также /junk/static/hellothere/this/matches/everything/file.js, потому что (. +) Также соответствует всем косым чертам. Если вы не хотите, чтобы он соответствовал обоим, вам необходимо обработать косые черты в регулярном выражении (отдельная обработка символов и косых черт):

- url: /([A-Za-z0-9-_]+)/([A-Za-z0-9-_]+)/(.*\.js)
  mime_type: text/javascript
  static_files: static/\3
  upload: static/(.*\.js)

Это соответствует /any-thing/any_th-ing/file.js. Если вы хотите получить более конкретную информацию, вы можете использовать:

- url: /user/([A-Za-z0-9-_]+)/(.*\.js)
  mime_type: text/javascript
  static_files: static/\2
  upload: static/(.*\.js)

для соответствия `/user/anything/file.js 'или:

- url: /([A-Za-z0-9-_]+)/static/(.*\.js)
  mime_type: text/javascript
  static_files: static/\2
  upload: static/(.*\.js)

соответствовать /anything/static/file.js

person GAEfan    schedule 17.08.2014
comment
Привет, дружище, что за параметр загрузки? Я имею в виду, что сейчас я использую Django и запустил collectstatic, чтобы собрать все файлы в одном месте. ТАК будет ли он загружен через gcloud или сервер выполнит команду автоматически? - person babygame0ver; 18.02.2018
comment
он не работает, вы можете помочь мне с моей проблемой? Я разместил здесь вопрос stackoverflow.com/questions/48849370/, я сделал именно то, что вы здесь сказали. Одна вещь, которую я хочу спросить у приложения .yaml и статическая папка должны находиться в одном каталоге? - person babygame0ver; 18.02.2018