【问题标题】:Trying to remap static directory with app.yaml in Google App Engine尝试在 Google App Engine 中使用 app.yaml 重新映射静态目录
【发布时间】:2014-09-22 13:53:45
【问题描述】:

我有一堆不在/cloud/images/example/foo.png 中但实际上在/images/example/foo.png 中的文件

我想在 URL /cloud/... 上同时提供 HTML 和 CSS/JS/图像内容,并让它在根 / 的本地应用程序目录中查找。

只是想测试如何从我的根目录的/images 文件夹中提供<img src="/cloud/images/..."> 的文件,并浏览到/cloud/foo/ 并让它服务/foo/index.html

这在图像上取得了一些成功:

# /cloud to root
- url: /cloud
  static_dir: .

但我有点卡在外面了。

注意:整个网站是 100% 静态的

【问题讨论】:

    标签: google-app-engine app.yaml


    【解决方案1】:

    为您提供 html:

    handlers:
    - url: /cloud/foo/
      static_files: foo/index.html
      upload: foo/index.html
    - url: /cloud/foo/(.*)
      static_files: foo/\1
      upload: foo/(.*)
    

    (.*) 基本上会捕获所有字符并使用它们在本地路径中定位文件,因此您可以拥有嵌套目录。

    第一个处理程序实际上是一个异常,如果你想让它表现得像一个经典的文件服务器,/ 返回/index.html,你必须告诉路由器这个特殊情况。就个人而言,我不会那样做(为了可用性,保存在根目录上);您将有两种方法可以访问同一个文件(//index.html),这可能会导致混乱(甚至是 SEO 问题),而且它是一个静态站点,所以使用像 @987654327 这样的完整路径很酷@,谁在乎 :) 只是我的 2 美分。

    【讨论】:

    • 那么有没有办法做到这一点是一种更通用的方式? /cloud/foo /cloud/bar 等需要单独的条目吗?
    • 还有 /cloud/foo/bar/ 呢?
    • 只要您明确指定文件,它就可以正常工作,这就是(.*) 发挥作用的地方,因此使用当前的处理程序/cloud/foo/bar/index.html 可以工作,只有当你想省略某些当您必须添加更多处理程序时,部件(例如让/ 带您到/index.html)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-03-23
    • 2021-08-15
    • 1970-01-01
    • 2012-02-02
    • 2016-06-06
    • 2014-11-25
    • 2016-06-12
    相关资源
    最近更新 更多