多页 URL 回退 (index.html & subpage.html)

Multi-page URL Fallback (index.html & subpage.html)

我正在尝试使用 google 应用程序 python 引擎部署多页 Vue.js 应用程序。

为了让 Vue.js 应用程序工作,我需要所有 URL 的回退以便 vue javascript 路由器可以接管。

Index.html 链接:

/foo

/bar

/foo/bar

Subpage.html 链接:

/subpage/foo

/subpage/bar

/subpage/foo/bar

在我当前的配置中,如果我从索引中删除通配符,则可以访问子页面,但索引链接不再有效。是否有可能实现多个回退,首先是'/',其次是'/subpage/'?

我已经包含了我的 app.yaml,我认为它应该像写的那样工作,但没有。

runtime: python27
api_version: 1
threadsafe: true

handlers:
  # Fonts and images
  - url: /(.+\.(eot|otf|tt[cf]|woff2?|cur|gif|ico|jpe?g|png|svgz?|webp))
    static_files: dist/
    upload: dist/(.+\.(eot|otf|tt[cf]|woff2?|cur|gif|ico|jpe?g|png|svgz?|webp))
    secure: always
    http_headers:
      Access-Control-Allow-Origin: "*"

  # CSS, Javascript, text and other file types
  - url: /(.+\.(css|js|xml|txt|map))
    static_files: dist/
    upload: dist/(.+\.(css|js|xml|txt|map))
    expiration: "10m"
    secure: always

  # HTML pages
  - url: /(.+\.html)
    static_files: dist/
    upload: dist/(.+\.html)
    expiration: '10m'
    secure: always
    http_headers:
      X-UA-Compatible: 'IE=edge'

  # Index entry point
  - url: /.*
    static_files: dist/index.html
    upload: dist/index.html
    expiration: '10m'
    secure: always
    http_headers:
      X-UA-Compatible: 'IE=edge'

  # Subpage entry point
  - url: /subpage/.*
    static_files: dist/subpage.html
    upload: dist/subpage.html
    expiration: '10m'
    secure: always
    http_headers:
      X-UA-Compatible: 'IE=edge'
  

skip_files:
  - ^(.*/)?app\.yaml
  - ^(.*/)?app\.yml
  - ^(.*/)?#.*#
  - ^(.*/)?.*~
  - ^(.*/)?.*/RCS/.*
  - ^(.*/)?\..*
  - ^(.*/)?tests$
  - ^(.*/)?test$
  - ^test/(.*/)?
  - ^COPYING.LESSER
  - ^README\..*
  - \.gitignore
  - ^\.git/.*
  - \.*\.lint$
  - ^node_modules/(.*/)?
  - public/*
  - src/*

你的问题是 - url: /.* 捕获了所有尚未捕获的东西。所以,处理程序永远不会到达 /subpage/.*

/subpage/.* 处理程序移至通配符上方 - url: /.*:

# Subpage entry point
- url: /subpage/.*
  static_files: dist/subpage.html
  upload: dist/subpage.html
  expiration: '10m'
  secure: always
  http_headers:
    X-UA-Compatible: 'IE=edge'

# Index entry point
- url: /.*
  static_files: dist/index.html
  upload: dist/index.html
  expiration: '10m'
  secure: always
  http_headers:
    X-UA-Compatible: 'IE=edge'