在app.yaml配置中处理favicon

时间:2014-06-28 05:55:55

标签: python google-app-engine yaml favicon app.yaml

是否有必要像Google Developers Cloud Playground一样单独处理favicon.ico

- url: /favicon\.ico
  static_files: favicon.ico
  upload: favicon\.ico

如果是这样,为什么不:

- url: /favicon.ico
  static_files: favicon.ico
  upload: favicon.ico


在我的真实app.yaml中,我没有单独处理favicon.ico,它似乎正在起作用:

application: myAppName
version: 1
runtime: python27
api_version: 1
threadsafe: true

handlers:
- url: /
  static_files: website/index.html
  upload: website/index.html

- url: /
  static_dir: website

website文件夹中,我有以下内容:

  • images_folder
  • 的favicon.ico
  • 的index.html

3 个答案:

答案 0 :(得分:1)

这不是关于你的整个问题,只是一个特定的部分(当你问为什么不删除你的favicon.ico中的反斜杠时)。 url配置实际上是一个正则表达式(参见here)。你有反斜杠的原因是"。"在正则表达式中意味着任何字符。这仍然有效的原因是文字"。"将匹配任何匹配任何角色的东西。反斜杠"逃脱" "。" (把它变成文字"。"而不是任何字符)。你会发现没有" \"它会匹配,例如" faviconaico"。虽然这很少是一个实际问题,但最好还是逃避任何文字字符。

答案 1 :(得分:1)

没有必要在 app.yaml 中使用自己的处理程序单独处理favicon.ico的请求。这仅仅是一种约定,因为favicons是最常请求的图标,并且通常在现代浏览器上默认请求。

可以使用所有 .ico 文件的通用处理程序,但鉴于来自浏览器的默认请求 favicon.ico 的某种特殊性质,使用它很常见一个独特的处理程序。

答案 2 :(得分:0)

您似乎正在尝试为静态网站提供服务。我会用:

application: myAppName
version: 1
runtime: python27
api_version: 1
threadsafe: true

handlers:
- url: /images
  static_dir: website/images_folder/

- url: /.+     # this should handle the favicon.ico, but see below
  static_dir: website/

- url: /
  static_files: website/index.html
  upload: website/index.html

虽然,我更喜欢明确说明favicon处理程序:

- url: /favicon.ico
  static_files: favicon.ico
  upload: favicon.ico

而且,实际上,我会将favicon放在images_folder中,以获得更整洁的开发环境,但这是一个单独的讨论。

相关问题