Python “金甲2号”;包括「;声明不适用于Google AppEngine

Python “金甲2号”;包括「;声明不适用于Google AppEngine,python,google-app-engine,jinja2,template-engine,Python,Google App Engine,Jinja2,Template Engine,我正在googleappengine上开发一个pythonweb应用程序,使用Jinja2作为模板管理器。在我的一个页面中,我使用“include”语句将另一个HTML页面插入到主页中。它在我的本地机器(PyCharm 5.0.4 IDE)上运行得很好,但是,当将应用程序上传到生产环境时,它中断了,说找不到模板 以下是包含声明: {% include '/widgets/transaction/add-transaction-modal/add-transaction-modal.html' %

我正在googleappengine上开发一个pythonweb应用程序,使用Jinja2作为模板管理器。在我的一个页面中,我使用“include”语句将另一个HTML页面插入到主页中。它在我的本地机器(PyCharm 5.0.4 IDE)上运行得很好,但是,当将应用程序上传到生产环境时,它中断了,说找不到模板

以下是包含声明:

{% include '/widgets/transaction/add-transaction-modal/add-transaction-modal.html' %}
我还尝试通过添加到include语句来放置完整的URL,但仍然得到相同的错误

这是我的Jinja2配置:

JINJA_ENVIRONMENT = jinja2.Environment(
loader=jinja2.FileSystemLoader(os.path.join(os.path.join(os.path.dirname(__file__), os.pardir), 'templates')),
extensions=['jinja2.ext.autoescape'])
这是app.yaml:

- url: /widgets
  static_dir: app/templates/widgets
这是文件夹结构:

+ APP
    + static
        - css
        - js 
        - img
    + templates
        + pages
            - dashboard.html (contains de include statement to the widget)
        + widgets
            - add-transaction-modal.html
            - add-transaction-modal.js
这真的很奇怪,因为它可以在我的本地开发服务器上正常工作。我的猜测是,这个问题与应用程序引擎产品环境的某些细节有关,而不是与Jinja2本身有关

你有什么想法吗


谢谢

它在include路径中没有前导斜杠的情况下工作吗?你的
app.yaml
看起来像什么?如果
/widgets/transaction/add transaction model
位于静态目录中,则这些文件的服务方式不同于非静态文件(默认情况下)。包含
include
语句的模板在哪里?@DanielRoseman即使删除前导斜杠也无法修复it@mgilson关于静态目录,我想你是对的。我用与小部件目录相关的app.yaml内容更新了这个问题,还添加了我正在使用的文件夹结构Daniel是正确的。在静态目录中不能有代码需要读取的模板。它必须与您的代码一起部署(它是代码)。