我把这个问题从原来的一点上重新定义了一下,使它对手头的问题更加基本。我的文件系统的相关部分如下所示。在
env
tutorial
tutorial
templates
view.pt
static
myjava.js
views.py
__init__.py
现在我的视图.pt模板有
^{pr2}$在我的__init__.py
中,我
config.add_static_view(name='static',path='env/tutorial/tutorial/static')
最后我的java.js文件本身非常简单:
document.write("hello from the javascript file")
我正在尝试遵循此文档:http://docs.pylonsproject.org/projects/pyramid/en/latest/narr/assets.html
但现在没有一条短信出现。我觉得问题出在我给它的路径上。在
我有一些想法:在config.add_静态视图,name='static'令人困惑。我希望用户能够访问网址www.domain.com/firstpage网站,其中firstpage是使用javascript文件资源(静态文件夹中的文件)的模板的结果。我担心这些静态资产只用于以www.domain.com/static/。。。这是一个合理的担忧吗?我怎么能告诉你config.add_静态视图函数为从中呈现的任何视图提供静态资源视图.pt模板?在
编辑:以下是有效的方法:
在模板中,使用src=“${request.static\u url('教程:static/myjava.js')}”
然后在init.py中使用config.add_静态视图(name='static',path='教程:静态/')
正在读取docs here,而当您调用
add_static_view
时,它会更改文件的路径?引用文件:在您的例子中,由于您将
env/tutorial/tutorial/static
称为“static”,所以您可能需要尝试src="static/Three.js">
模板中的javascript链接应该是
src="${request.static_url('tutorial:static/myjava.js')}"
这使您的应用程序可以更容易地重新定位。在
这也使用适当的资产规范,使用包的名称, “tutorial”,一个冒号,然后是相对于“tutorial”包位置的路径,在您的例子中,这个包位于
env/tutorial/tutorial
。在编辑:我忘了配置器对象。在
在这里,您希望使用类似的资产规范,例如
config.add_static_view('static', 'tutorial:static/')
。在您也可以为不同的目录创建不同的静态视图,比如:
config.add_static_view('images', 'tutorial:images/')
当您这样做时,您可以将应用程序的根目录移到另一个位置,允许您将}的访问权重写为
http://mysite.com/stable/
和{/
。在静态视图可以用
${request.static_url('tutorial:images/icons/favicon.ico')}
这样的代码从任何模板调用相关问题 更多 >
编程相关推荐