与传统网络托管环境不同,Google App Engine 不直接在您的应用程序的源目录之外提供文件,除非被配置为可进行此项操作。我们将模板文件命名为 index.html,但这不会自动使该文件在网址 /index.html 上可用。
但在许多情况下,您希望将静态文件直接提供给网络浏览器。通常,图像、CSS 样式表、JavaScript 代码、电影和 Flash 动画都使用网络应用程序存储并直接提供给浏览器。您可以命令 App Engine 直接提供特定文件,而不必对自己的处理程序进行编码。
编辑 helloworld/app.yaml 并使用以下内容替换其内容:
application: helloworld version: 1 runtime: python api_version: 1 handlers: - url: /stylesheets static_dir: stylesheets - url: /.* script: helloworld.py
新 handlers 部分为网址定义了两个处理程序。当 App Engine 收到网址以 /stylesheets 开头的请求时,App Engine 会将路径的剩余部分映射至 stylesheets 目录中的文件,而且如果找到了相应的文件,该文件的内容就会返回至客户端。其他所有网址将与 / 路径相匹配,并由 helloworld.py 脚本进行处理。
默认情况下,App Engine 会根据文件扩展名使用 MIME 类型提供静态文件。例如,会以 text/css MIME 类型提供名称以 .css 结尾的文件。您可以用其他选项配置明确的 MIME 类型。
网址处理程序路径模式会以它们在 app.yaml 中显示的顺序从上到下进行测试。在这种情况下,/stylesheets 模式将在 /.* 模式之前与相应路径进行匹配。有关网址映射和您可以在 app.yaml 中指定的其他选项的详细信息,请参阅 app.yaml 参考。
创建目录 helloworld/stylesheets。在该新目录中,创建一个名为 main.css 的新文件,其内容如下:
body {
font-family: Verdana, Helvetica, sans-serif;
background-color: #DDDDDD;
}
最后,编辑 helloworld/index.html 并在顶部的 <html> 行后插入以下行:
<head>
<link type="text/css" rel="stylesheet" href="/stylesheets/main.css" />
</head>
在您的浏览器中重新加载该页面。新版本将使用该样式表。
到了展示您所完成的应用程序的时候了。
继续上传您的应用程序。