GAE/Python/jinja2 /如何引用join语句中的子目录

1 python google-app-engine django-templates jinja2

我在根目录的"static"子目录中有一个html文件"listagem.html".我想使用"listagem.html"作为jinja2的模板.

我尝试了这3个连接公式:

第一:

jinja_environment = jinja2.Environment(
    autoescape = True, 
    loader =  jinja2.FileSystemLoader(os.path.join(os.path.dirname(__file__), 'static')))
Run Code Online (Sandbox Code Playgroud)

第二:

jinja_environment = jinja2.Environment(
    autoescape = True, 
    loader =  jinja2.FileSystemLoader(os.path.join(os.path.dirname(__file__), 'static/')))
Run Code Online (Sandbox Code Playgroud)

第三:

jinja_environment = jinja2.Environment(
    loader = jinja2.FileSystemLoader(os.path.join(os.path.dirname(__file__), '/static')))
        template = jinja_environment.get_template('listagem.html')
        self.response.out.write(template.render(template_values)) 
Run Code Online (Sandbox Code Playgroud)

并收到此错误:

file not accessible: 'C:\\Users\\Me\\AppEngine\\MyAppRoot\\static\\listagem.html'
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

坦克寻求帮助.

thi*_*nom 5

您可能已static_dir在您的app.yaml文件中添加了一个url处理程序,并将您的static目录(模板所在的位置)设置为static_dir.

这使您的文件无法访问,因为静态文件在应用程序的文件系统中不可用.

static_dirapp.yaml文件中删除并在项目文件夹中添加static-templates文件夹.

创建一个jinja环境,如下所示:

jinja_environment = jinja2.Environment(autoescape=True,
    loader=jinja2.FileSystemLoader(os.path.join(os.path.dirname(__file__), 'static')))
Run Code Online (Sandbox Code Playgroud)