Comment servir les fichiers statiques à partir d'un autre répertoire que le chemin d'accès statique?
J'essaye ceci:
favicon_path = '/path/to/favicon.ico'
settings = {'debug': True,
'static_path': os.path.join(PATH, 'static')}
handlers = [(r'/', WebHandler),
(r'/favicon.ico', tornado.web.StaticFileHandler, {'path': favicon_path})]
application = tornado.web.Application(handlers, **settings)
application.listen(port)
tornado.ioloop.IOLoop.instance().start()
Mais il continue de servir les favicon.ico
que j'ai dans mon static_path (j'en ai deux différents favicon.ico
's dans deux voies différentes, comme indiqué ci-dessus, mais je veux être en mesure de remplacer l'un dans l' static_path
).
Vous devez vous connecter pour publier un commentaire.
Supprimer
static_path
depuis les paramètres de l'application.Puis réglez votre gestionnaire:
we will serve /favicon.ico and /robots.txt from the same [static_path] directory
RequestHandler
. La premadeStaticFileHandler
classe s'attend à ce que le chemin d'accès du fichier, il est à la recherche relative à "l'static_path" réglage ou la "voie" membre sur les gestionnaires de classe. L' {"path": static_path} est passé pour les gestionnairesinitialize
méthode qui définit alors sur l'instance.TypeError: get() missing 1 required positional argument: 'path'
, mais je n'ai pas le tester.Vous avez besoin d'envelopper favicon.ico avec la parenthèse et s'échapper de la période de l'expression régulière. Votre code deviendra
Il y a deux façons de le faire.
1. utilisation static_url_prefix dans les paramètres.
par exemple
2. l'utilisation de gestionnaire personnalisé
Ajouter gestionnaire personnalisé pour les gestionnaires
Puis implemente vos méthodes personnalisées.