4

我正在尝试创建登录和个人资料页面。这是适用于“/”和“/(任何)”的 app.yaml 文件。而不是 '/(anything)' 我希望路径为 '/user/.*'。我尝试了很多,但它只呈现页面的 html 部分。如何配置我的 app.yaml,使其以完整的 CSS 和 JS 呈现并适用于“/(anything)/(anything)”?

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:我有我的文件夹树,

应用程序.yaml

静态->CSS、JS、图像、html 文件

index.yaml main.app

4

1 回答 1

2

尝试类似:

- 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

于 2014-08-17T17:27:06.027 回答