2

我正在尝试将我的 webapp 部署到 Webfaction,基本示例工作正常,我在使用 Jinja2 扩展基本模板的模板中得到了 TemplateNotFound。这是我的项目树:

/webapps
    /myapp
        development.ini
        production.ini
        /bin
    /theapp
        /Project
          setup.py
          /project
              __init__.py
              views.py
              /templates
                  base.jinja2
                  home.jinja2
              /static

_初始化_.py

config.include('pyramid_jinja2')
config.add_jinja2_search_path("templates")

home.jinja2

{% extends "templates/base.jinja2" %}

更清楚地说,该项目在本地工作我知道它与模板路径有关,我不确定如何设置它,我尝试了很多不同的方法,无论如何这是回溯:

  File "..webapps/myapp/myapp/Project/project/templates/home.jinja2", line 1, in top-level template code
    {% extends "templates/base.jinja2" %}
  File "..webapps/myapp/lib/python2.7/site-packages/pyramid_jinja2-1.8-py2.7.egg/pyramid_jinja2/__init__.py", line 193, in get_source
    raise TemplateNotFound(name=ex.name, message=message)
TemplateNotFound: templates/base.jinja2; asset=..webapps/myapp/lib/python2.7/site-packages/Project-0.0-py2.7.egg/project/templates/base.jinja2; searchpath=['..webapps/myapp/lib/python2.7/site-packages/Project-0.0-py2.7.egg/project/templates']

如果那是我的错误,请帮我设置模板的正确路径。

4

2 回答 2

5

由于搜索路径是'..webapps/myapp/lib/python2.7/site-packages/Project-0.0-py2.7.egg/project/templates',这告诉我您使用python setup.py install. 到目前为止,以这种方式分发您的应用程序最常见的缺陷是在打包您的应用程序时需要一个 MANIFEST.in 文件,以便它包含静态资产。python setup.py develop而是从目录中运行应用程序,并且不会遇到该问题。我希望如果你解压缩你的 egg 文件,你不会在里面找到你的模板。

于 2013-10-04T15:39:00.857 回答
1

尝试在扩展文件中添加文件 MANIFEST.in。

recursive-include project *.ico *.png *.css *.gif *.jpg *.pt *.txt *.mak *.mako *.js *.html *.xml *.jinja2
于 2014-11-19T14:02:26.043 回答