我正在Pyramid中构建一个应用程序,并利用Jinja2模板和遍历路由。为了将view-callable与正在使用的模板关联起来,我希望能够使用webapp:templates前缀引用我的模板。举个例子:

@view_config(name='about-us', renderer='webapp:templates/pages/about-us.html', context=Root)
def static_pages(context, request):
    ... //more code


这将模板与使用模板的地方分离开来。为了使以上功能正常运行,我必须将其放在我的webapp根文件夹的__init__.py内:

config.add_static_view(name='templates', path='webapp:templates', cache_max_age=3600)


add_static_view()使webapp/templates文件夹在其他配置中被引用为webapp:template。但是,它也使它可以从http://0.0.0.0:6543/templates/<some template file>这样的URL中查看。有没有一种方法可以实现前一个目标而又不允许后者作为静态页面可见?

最佳答案

add_static_view()不应导致webapp/templates文件夹在其他配置中被引用为webapp:template,如果这样做仅仅是由于怪异的副作用。

package:path语法有效,因为Pyramid使用pkg_resources API来解析路径。这是一些details

这意味着,在您的示例中,webapp应该是位于应用程序可以找到它的位置的python软件包。

关于python - 不使用add_static_view添加引用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28246683/

10-12 22:07