0

也许我遗漏了一些东西(我希望我是!),但是必须处理浏览器请求的一次性根网站文件(例如 favicon.ico 和 apple-touch-icon 之类的东西)似乎非常笨拙-precomposed.png(在 iPad 上)。现在,每当我遇到其中一个我没有明确提供文件的情况时,我都会收到 500 服务器错误。

我的问题:

  1. 是否有我的 webapp 应该处理的所有主要浏览器的所有此类文件的最新列表?

  2. 作为故障保险,有没有办法让这些文件中的任何一个都无声地失败,即在 webapp 继续以快乐的方式运行时不会出现 500 服务器错误,只需使用空白图标或其他什么?

我正在使用 gunicorn 在 Heroku 上运行 Django 应用程序。

4

1 回答 1

1

我从来没有从无效的 url 中得到 500 错误,因为我使用 STATIC_URL 和基于类的 RedirectView

通常我有一个专门用于此的应用程序,并将其包含在根 urls.py 中

#urls.py
include('oneoff.urls', name='oneoff')`

#oneoff/urls.py
urlpatterns = ( '',
    url(r'favicon.ico$',
        RedirectView.as_view(url=urlparse.urljoin(settings.STATIC_URL, "img/favicon.ico")),
        name="favicon"
    ),
    url(r'icon-precomposed.png',
        RedirectView.as_view(url=urlparse.urljoin(settings.STATIC_URL, "img/iphone/icon.png")),
        name="iphone"
    ),
)

然后在模板中

{% load url from future %}
<link rel="favicon" href="{% url 'oneoff:favicon' %} />
于 2012-09-16T17:19:59.117 回答