pyramid_mako 找不到模板。是否有一个钩子可以找到被调用的目录/文件?
pyramid_mako not finding templates. is there a hook to find the directory / file being called?
这个真的很烦我。
首先会说在我的本地机器上一切正常。然而,在服务器上,无论我做什么,最终都会出现 "Can not locate template for uri: ..."
在我的本地机器上,我在 Mac OS X 上使用 Linux 虚拟机。我研究了文件名之间的区分大小写问题。没有骰子。
我最初通过在本地调用文件使一切正常。
为了确认,我切换到使用 mako.directories = app:templates
配置并将我的模板目录从我的 app.views 包中移动到 app:template 文件夹——这是一个小写的新文件夹名称.
在此配置上不起作用。
我决定更明确。
所以我调用了我的 mako 文件:
@view_config(renderer='myapp:templates/template1.mak')
def template1(self):
pass
仍然没有骰子。
尝试在本地显式显示。
@view_config(renderer='templates/template2.mak')
def template2(self):
pass
仍然失败。
当然,在配置中使用 mako.directories
时,它仍然不起作用。
@view_config(renderer='template3.mak')
def template3(self):
pass
有没有一种方法可以挂钩它以查看正在调用的特定文件路径?
比 'templates/template.mak'?
大得多的东西
作为参考,这些是 Pyramid TopLevelException 中的 URI 分别看起来像什么:
Exception
=========
"Can not locate template for uri %r" % uri)
mako.exceptions.TopLevelLookupException: Can not locate template for uri
========
'app:templates/template1.mak
'app.views:templates/template2.mak'
我明白为什么它不起作用了!
我 运行 python setup.py install
在我加载我的金字塔应用程序之前在我的服务器上。所有 python 源代码都移到了我的 VENV 中的 site-packages
文件夹,但(重要的是)我的 MAKO 文件没有移到那里。
当我 运行 python setup.py develop
时,因为我的包是作为符号链接安装的,所以我的 MAKO 文件仍然存在于我的项目中。
以为名称会另有说明,无法安装使用非python文件(例如模板)的金字塔项目!它们必须保持在该开发状态。
如果我们可以 运行 这些与 python setup.py develop
,请在评论中告诉我!我可能遗漏了一些东西。
编辑 1:
这是正确的方向,但我不确定如何使用它:
https://docs.python.org/2/distutils/setupscript.html#installing-package-data
(编辑 3):Including non-Python files with setup.py
编辑 2:
这在 Preparing a pyramid app for production
中提示了我
这个真的很烦我。
首先会说在我的本地机器上一切正常。然而,在服务器上,无论我做什么,最终都会出现 "Can not locate template for uri: ..."
在我的本地机器上,我在 Mac OS X 上使用 Linux 虚拟机。我研究了文件名之间的区分大小写问题。没有骰子。
我最初通过在本地调用文件使一切正常。
为了确认,我切换到使用 mako.directories = app:templates
配置并将我的模板目录从我的 app.views 包中移动到 app:template 文件夹——这是一个小写的新文件夹名称.
在此配置上不起作用。
我决定更明确。
所以我调用了我的 mako 文件:
@view_config(renderer='myapp:templates/template1.mak')
def template1(self):
pass
仍然没有骰子。
尝试在本地显式显示。
@view_config(renderer='templates/template2.mak')
def template2(self):
pass
仍然失败。
当然,在配置中使用 mako.directories
时,它仍然不起作用。
@view_config(renderer='template3.mak')
def template3(self):
pass
有没有一种方法可以挂钩它以查看正在调用的特定文件路径? 比 'templates/template.mak'?
大得多的东西作为参考,这些是 Pyramid TopLevelException 中的 URI 分别看起来像什么:
Exception
=========
"Can not locate template for uri %r" % uri)
mako.exceptions.TopLevelLookupException: Can not locate template for uri
========
'app:templates/template1.mak
'app.views:templates/template2.mak'
我明白为什么它不起作用了!
我 运行 python setup.py install
在我加载我的金字塔应用程序之前在我的服务器上。所有 python 源代码都移到了我的 VENV 中的 site-packages
文件夹,但(重要的是)我的 MAKO 文件没有移到那里。
当我 运行 python setup.py develop
时,因为我的包是作为符号链接安装的,所以我的 MAKO 文件仍然存在于我的项目中。
以为名称会另有说明,无法安装使用非python文件(例如模板)的金字塔项目!它们必须保持在该开发状态。
如果我们可以 运行 这些与 python setup.py develop
,请在评论中告诉我!我可能遗漏了一些东西。
编辑 1:
这是正确的方向,但我不确定如何使用它:
https://docs.python.org/2/distutils/setupscript.html#installing-package-data
(编辑 3):Including non-Python files with setup.py
编辑 2:
这在 Preparing a pyramid app for production
中提示了我