我正在使用html模板进行我不使用layout.html
的项目。我从视图中删除了{{extend 'layout.html'}}
,但是,我仍然想使用views/web2py_ajax.html
。
我尝试了几件事:首先我尝试将{{include 'web2py_ajax.html'}}
放入new_template.html
然后{{include}}
,但这不起作用。
然后,我将views/web2py_ajax.html
文件中的代码复制到我的new_template.html
视图中,但似乎没有效果。
当我说new_template.html
时,我的意思是我使用的html模板不是layout.html
。
在head
的{{1}}中,new_template.html
的所有css
个链接和js
脚本下我放置了这个:
new_template.html
然后,在我{{include 'web2py_ajax.html'}}
{{
response.files.insert(0,URL('static','css/web2py.css'))
response.files.insert(1,URL('static','css/bootstrap.min.css'))
response.files.insert(2,URL('static','css/bootstrap-responsive.min.css'))
response.files.insert(3,URL('static','css/web2py_bootstrap.css'))
}}
的{{1}}中:
body
我测试了new_template.html
{{include}}
,错误消息是纯黑色文本,而不是带有白色文本的红色背景框中的错误消息。我知道必须有一个更好的方法来测试这个,但我有点迷失。这样做的最佳方式是什么?
我很感激这方面的帮助。
答案 0 :(得分:0)
您必须在包含web2py_ajax.html之前完成response.files
,因为该视图包含response.include_files()
调用,该调用实际上会生成HTML以加载页面中的所有文件。所以,它应该是:
{{
response.files.insert(0,URL('static','css/web2py.css'))
response.files.insert(1,URL('static','css/bootstrap.min.css'))
response.files.insert(2,URL('static','css/bootstrap-responsive.min.css'))
response.files.insert(3,URL('static','css/web2py_bootstrap.css'))
}}
{{include 'web2py_ajax.html'}}
您还必须确保web2py_ajax.html加载的所有静态资产实际可用(例如,web2py.js必须位于应用程序的/ static / js文件夹中)。
最后,您要加载的特定页面的视图必须以:
开头{{extend 'new_template.html'}}
虽然您不必使用脚手架应用程序中的layout.html布局,但如果您从头开始创建自己的布局,仍建议您从layout.html的头部复制一些代码。从脚手架应用程序作为基础开始,然后删除不需要的东西也是一个好主意 - 这样你就可以从一开始就在正确的位置拥有所需的静态资产。