在 Google 应用引擎 Python 中提供静态 html

Posted

技术标签:

【中文标题】在 Google 应用引擎 Python 中提供静态 html【英文标题】:Serving static html in Google app engine Python 【发布时间】:2011-08-07 07:54:45 【问题描述】:

我无法为我的 Python 加载静态 .html 页面 应用程序。当我单击 index.html 之类的链接时,我得到一个空白页面,并且在服务器上记录了 404 错误。这对于其他静态 .html 文件(例如 about.html)也是如此。

应用程序可以在静态文件中运行。我试过看 很多地方,但我似乎无法获得 .html 页面。即

信息 2011-04-16 17:26:33,655 dev_appserver.py:3317] “获取 / terms.html HTTP/1.1" 404 -

yaml:

application: quote
version: 1
runtime: python
api_version: 1

handlers:

- url: /index\.html
script: index.py

- url: /
script: index.py

- url: /(.*\.(html))
static_files: static/\1
upload: static/HTML/(.*\.(html))


- url: /favicon.ico
static_files: static/images/favicon.ico
upload: images/favicon.ico
mime_type: image/x-icon

- url: /css
static_dir: static/css

- url: /images
static_dir: static/images

- url: /js
static_dir: static/js

我的静态文件位于 static/HTML 中,index.html 位于主文件夹中。

这个我也试过了,但是好像没什么区别:

- url: /favicon.ico
  static_files: static/images/favicon.ico
  upload: images/favicon.ico
  mime_type: image/x-icon

- url: /css
  static_dir: static/css

- url: /images
  static_dir: static/images

 - url: /js
  static_dir: static/js

 - url: /(.*\.(html))
  static_files: static/\1
  upload: static/HTML/(.*\.(html))

 - url: /index\.html
  script: index.py

 - url: /
 script: index.py

【问题讨论】:

好的,Tha 不知道,我已经完成了静态工作。现在我遇到了添加另一个不起作用的脚本处理程序的额外问题。 【参考方案1】:

将您的 HandlerScripts 放在静态目录处理部分的下方。 IOW,把它移到最后。

- url: /index\.html
script: index.py

- url: /
script: index.py

【讨论】:

谢谢,但这没什么区别。这是我所拥有的: - url: /favicon.ico static_files: static/images/favicon.ico 上传: images/favicon.ico mime_type: image/x-icon - url: /css static_dir: static/css - url : /images static_dir: static/images - url: /js static_dir: static/js - url: /(.*\.(html)) static_files: static/\1 上传: static/HTML/(.*\.(html )) - url:/index\.html 脚本:index.py - url:/ 脚本:index.py 这里的顺序无关紧要 - 处理程序按照它们列出的顺序进行匹配,并且没有一个处理程序与其他任何处理程序匹配。 @Nick - 我想知道他的动态处理程序是否正在掩盖静态处理程序的路径(相当常见的prb)。我在下面读到静态需要更正的路径。 @SenthilKumaran +1 这已经让我死了好几个小时。谢谢。【参考方案2】:

在您的 static_files 路径中添加 /HTML

- url: /(.*\.(html))
  static_files: static/HTML/\1
  upload: static/HTML/(.*\.(html))

【讨论】:

@Dave 您还定义了一个处理程序以匹配/index.html 与Python 脚本index.py - 这样即使您有一个文件static/HTML/index.html,该URL 也将由一个动态处理程序提供服务。 【参考方案3】:

您不必在 yaml 文件中单独定义每个目录

handlers:
- url: /static
  static_dir: my_application/static

然后在您将使用 django 呈现的相关 html 文件中,您可以调用静态内容,例如

<script src="/static/less_lib.min.js"></script>

【讨论】:

此示例的静态文件夹应位于应用的根文件夹下。 是的,我可以这样做,但我怀疑这会解决手头的问题。另外,我的规模很小,在我的情况下,不需要在 html 中使用额外的 /static 。不过感谢您的建议。【参考方案4】:

您必须正确缩进您的 YAML。

提供

脚本级别不正确

handlers:
- url: /index\.html
script: index.py

json 等价物


  "handlers": [
    
      "url": "/index\\.html"
    
  ], 
  "script": "index.py"

缩进

脚本在正确的级别

handlers:
- url: /index\.html
  script: index.py

json 等价物


  "handlers": [
    
      "url": "/index\\.html", 
      "script": "index.py"
    
  ]

Online YAML Parser

【讨论】:

文件中的所有内容都正确缩进。在这里,格式被扭曲了。 @dave,我想我现在需要更加努力了。

以上是关于在 Google 应用引擎 Python 中提供静态 html的主要内容,如果未能解决你的问题,请参考以下文章

如何在类似于应用引擎的Google Compute引擎上部署应用?

《云计算(第三版)》精华连载14:Google应用程序引擎

是否有任何可用的解决方案为 Google 应用引擎提供 xsrf/csrf 支持?

使用 python 部署 Google 应用引擎失败

Google 应用引擎的 gradle 单元测试在哪里期望 persistence.xml?

Google的App引擎添加了对Node.js的支持