我们正在建造基于龙卷风的uServices。有些路由对于所有uServices来说都是常见的,目前是health和docs。docs路由是使用Swagger构建的。这意味着,swagger路由和相关资产是公共库的一部分(但不包括与uService相关的文档本身),这只是uServices的一个需求。
因为swagger需要静态资产,而每个uService也需要自己的静态资产,所以我有一个问题:我的静态资产来自两个完全不同的地方。我发现了一个(非常不方便)的黑客来解决这个问题:
static_path第三步非常复杂,因为它涉及到pip--安装公共库,在那里查找资产(已经被黑客攻击),然后复制它们:
site-packages)的位置如果像template_path一样,有一个每个应用程序的静态文件夹是可能的,那就容易多了:
> Return None to load templates relative to the calling file.我一直在网上搜索,似乎是this is not possible,但我想再检查一遍。
另一种方法是简化从打包的python模块中提取资产的过程,但不确定这样做的首选方法是什么,而不必重复在virtualenv中搜索site-packages的黑客攻击。
发布于 2016-09-08 12:34:41
使用static_path设置无法做到这一点,但只要不需要static_url()函数,就可以在URLSpec列表中创建多个StaticFileHandler条目:
Application([
('/static1/(.*)', tornado.web.StaticFileHandler, dict(path='static1')),
('/static2/(.*)', tornado.web.StaticFileHandler, dict(path='static1')),
])作为static_url的替代,您可以调用StaticFileHandler.make_static_url并传递给它如果使用static_path将是全局的参数。
https://stackoverflow.com/questions/39388641
复制相似问题