主域+子域+未找到CSS

时间:2018-03-08 15:53:48

标签: google-app-engine

我有一个dispatch.yaml分割2个服务;控制管理员登录的admin_main.py和控制用户登陆的main.py。我的问题是admin_main.py没有看到我自己引导它的CSS。但是,它与main.py CSS保持匹配。 我的文件结构为

admin

 |assets

    |CSS

      +styles.min.css

www

  |assets

     |CSS

       +styles.min.css

dispatch.yaml

dispatch:
  # Default service serves simple hostname request.
  - url: "example.net/"
    service: default
  # Default service serves simple hostname request.
  - url: "app-example.appspot.com/"
    service: default

  # Default service serves simple hostname request.
  - url: "admin.example.net/"
    service: admin
  - url: "admin-dot-app-example.appspot.com/"
    service: admin

admin_main.py

service: admin
runtime: python27
api_version: 1
threadsafe: yes

handlers:
- url: /assets/css/styles.min.css
  static_files: admin/assets/css/styles.min.css
  upload: admin/assets/css/styles.min.css

  - url: /.*
  script: subdomain.app

libraries:
- name: webapp2
  version: latest
- name: jinja2
  version: latest

main.py

service: default
runtime: python27
api_version: 1
threadsafe: yes

default_expiration: "4d 5h"

handlers:

- url: /assets/css
  static_dir: www/assets/css

- url: /assets/img
  static_dir: www/assets/img


- url: /.*
  script: main.app


libraries:
- name: webapp2
  version: latest
- name: jinja2
  version: latest

.html中指向CSS的链接

<link rel="stylesheet" href="assets/css/styles.min.css">

两个着陆点。但是,由于dispatch.yaml将来电分开,这不应该是一个问题,对吧? 我不确定导致问题的原因。另外,我是yaml的新手,我一直在阅读它的文档。

1 个答案:

答案 0 :(得分:0)

一种解决方案是将每个CSS存储在同一个文件中,并为它们指定不同的名称。然后在app.yaml部分的handlers部分添加以下内容:

- url: "/assets/css/(.*\\.(css))$"
  static_files: {CSS_DIR_IN_PROJECT}/\1
  upload: {CSS_DIR_IN_PROJECT}/.*\.(css)$
  application_readable: true

这是我解决问题的唯一方法