Python 通过自定义处理程序提供静态文件或在app.yaml中注册?

Python 通过自定义处理程序提供静态文件或在app.yaml中注册?,python,google-app-engine,webapp2,Python,Google App Engine,Webapp2,在我正在开发的一个项目中,我使用了几个Python项目作为依赖项。这些项目都带有静态文件(JavaScript、图像等)和一组处理程序(带有默认URL)。为了注册处理程序的URL,我将它们添加到WSGI应用程序中的路由中。但是,静态文件需要在app.yaml中注册。这是我想要避免的事情,因此注册处理程序URL和静态文件变得轻而易举 我考虑实现一个请求处理程序,该处理程序接受一个文件位置并使用HTTP缓存为其提供服务(就像我认为默认的静态处理程序那样) 我和一位同事讨论过这个想法,他认为这是个坏主

在我正在开发的一个项目中,我使用了几个Python项目作为依赖项。这些项目都带有静态文件(JavaScript、图像等)和一组处理程序(带有默认URL)。为了注册处理程序的URL,我将它们添加到WSGI应用程序中的路由中。但是,静态文件需要在app.yaml中注册。这是我想要避免的事情,因此注册处理程序URL和静态文件变得轻而易举

我考虑实现一个请求处理程序,该处理程序接受一个文件位置并使用HTTP缓存为其提供服务(就像我认为默认的静态处理程序那样)

我和一位同事讨论过这个想法,他认为这是个坏主意。他告诉我,在app.yaml中注册静态文件时,会以更优化的方式提供文件(可能没有Python)

在我开始实现静态处理程序之前,我想听听这两种方法的优缺点,以及静态处理程序的想法是否是一个好主意


在当前的项目中,我们让Buildout从模板生成app.yaml。静态文件添加到那里。(明显的)缺点是此过程容易出错(如果自动完成)或冗余(如果手动完成)。

使用静态处理程序:

  • 您不需要启动实例来服务您的文件。这通常意味着服务速度更快,并且节省CPU时间

  • 您不必担心边缘缓存


缺点可能是文件是静态的,可能需要对框架进行更多的手动干预。

让静态处理程序尽可能地处理一切。静态内容的服务方式与代码不同,成本更低,性能更好。构建的任何部分都可能配置不正确,因此我看不到任何缺点。