PythonWebApp2提供静态内容
我们的团队将一个项目从GAE迁移到AWS。其中一个组件是构建在webapp2之上的web应用程序,webapp2是一个易于与GAE集成的框架。我们也在AWS中保留了webapp2框架,并进行了一些小的更改以使其正常工作 web应用程序在云中运行良好,但我也在设法在本地开发机器上运行它。当我们使用GAE环境时,这是一项简单的任务,因为Google提供了AppEngineLauncher,一个非常好地模拟云环境的工具 在AWS中,为了使用AppEngineLauncher启动web应用程序,我们继续进行一些黑客攻击,但现在我们想放弃它。因此,我修改了python脚本并成功启动了它,但我不知道如何提供静态内容。静态文件(CSS,JS)被添加到HTML模板中,比如link rel=“stylesheet”type=“text/CSS”href=“{{statics_bucket}}/statics/CSS/shared.CSS”/,其中{{statics_bucket}是一个环境变量,它指向每个环境的特定Amazon S3 bucket。当然,这在localhost上不起作用,因为没有人在上提供静态内容。谷歌应用程序引擎启动器有这个功能,它完成了所有艰难的工作PythonWebApp2提供静态内容,python,webapp2,static-content,Python,Webapp2,Static Content,我们的团队将一个项目从GAE迁移到AWS。其中一个组件是构建在webapp2之上的web应用程序,webapp2是一个易于与GAE集成的框架。我们也在AWS中保留了webapp2框架,并进行了一些小的更改以使其正常工作 web应用程序在云中运行良好,但我也在设法在本地开发机器上运行它。当我们使用GAE环境时,这是一项简单的任务,因为Google提供了AppEngineLauncher,一个非常好地模拟云环境的工具 在AWS中,为了使用AppEngineLauncher启动web应用程序,我们继续
有人能指出实现我目标的方法吗?我通过以下脚本实现了我的目标:
import os.path
import application
from paste import httpserver
from paste.cascade import Cascade
from paste.urlparser import StaticURLParser
def main():
web_client = application.application
here = os.path.dirname(os.path.abspath(__file__))
static_app = StaticURLParser(here)
app = Cascade([web_client, static_app])
httpserver.serve(app, host='localhost', port='8080')
if __name__ == '__main__':
main()
该脚本启动云应用程序和一个组件,该组件为静态文件提供服务,两者都位于同一服务器内的同一端口上