/favicon.icoおよび/robots.txtURLのクックブックの説明を使用していて、何か奇妙なことがわかりました。ルートを追加していadd_route
ます:
def main(global_config, **settings):
""" This function returns a Pyramid WSGI application.
"""
# ....
config = Configurator(settings=settings)
config.add_static_view('public', 'public', cache_max_age=3600)
config.add_route('favicon.ico', '/favicon.ico')
config.add_route('robots.txt', '/robots.txt')
config.add_route('home','/{id}') #don't worry about this one
config.scan()
return config.make_wsgi_app()
ビューを次のように定義します。
@view_config(name='favicon.ico')
def favicon_view(context, request):
return _fi_response
@view_config(name='robots.txt')
def robotstxt_view(context, request):
return _robots_response
上記のリンクの指示に従って、_fi_response
およびが作成されます。_robots_response
悲しいことに、自分のページの1つに移動すると、ファビコンがなく、に移動するとlocalhost:6544/favicon.ico
404になります。奇妙なことに、すべてのデバッグをオンにすると、次のように表示されます。
2012-10-13 21:38:50,437 DEBUG [trosted][Dummy-5] route matched for url http://localhost:6544/favicon.ico; route_name: 'favicon.ico', path_info: u'/favicon.ico', pattern: '/favicon.ico', matchdict: {}, predicates: ''
2012-10-13 21:38:50,438 DEBUG [trosted][Dummy-5] debug_notfound of url http://localhost:6544/favicon.ico; path_info: u'/favicon.ico', context: <pyramid.traversal.DefaultRootFactory instance at 0x102b6a7a0>, view_name: u'', subpath: (), traversed: (), root: <pyramid.traversal.DefaultRootFactory instance at 0x102b6a7a0>, vroot: <pyramid.traversal.DefaultRootFactory instance at 0x102b6a7a0>, vroot_path: ()
これにより、ファビコンは一方のプロセスで検出され、もう一方のプロセスでは検出されないと思います。誰かが私が間違っていることについて何か考えを持っているかどうか疑問に思います。