Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PythonWebApp2提供静态内容_Python_Webapp2_Static Content - Fatal编程技术网

PythonWebApp2提供静态内容

PythonWebApp2提供静态内容,python,webapp2,static-content,Python,Webapp2,Static Content,我们的团队将一个项目从GAE迁移到AWS。其中一个组件是构建在webapp2之上的web应用程序,webapp2是一个易于与GAE集成的框架。我们也在AWS中保留了webapp2框架,并进行了一些小的更改以使其正常工作 web应用程序在云中运行良好,但我也在设法在本地开发机器上运行它。当我们使用GAE环境时,这是一项简单的任务,因为Google提供了AppEngineLauncher,一个非常好地模拟云环境的工具 在AWS中,为了使用AppEngineLauncher启动web应用程序,我们继续

我们的团队将一个项目从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上不起作用,因为没有人在上提供静态内容。谷歌应用程序引擎启动器有这个功能,它完成了所有艰难的工作


有人能指出实现我目标的方法吗?

我通过以下脚本实现了我的目标:

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()
该脚本启动云应用程序和一个组件,该组件为静态文件提供服务,两者都位于同一服务器内的同一端口上