View 如何在web2py中从查看HTML加载静态文件?

View 如何在web2py中从查看HTML加载静态文件?,view,web2py,static-files,View,Web2py,Static Files,给定一个具有布局的视图,如何从视图文件将静态文件(基本上是CSS和JS)加载到视图中 layout.html <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="{{=T.accept

给定一个具有布局的视图,如何从视图文件将静态文件(基本上是CSS和JS)加载到视图中

layout.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="{{=T.accepted_language or 'en'}}">
    <head>
        <title>{{=response.title or request.application}}</title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
        <!-- include requires CSS files
        {{response.files.append(URL(request.application,'static','base.css'))}}
        {{response.files.append(URL(request.application,'static','ez-plug-min.css'))}}
        -->
        {{include 'web2py_ajax.html'}}
    </head>
    <body>
        {{include}}
    </body>
</html>
{{extend 'layout.html'}}
{{response.files.append(URL(r=request,c='static',f='myview.css'))}}

<h1>Some header</h1>
<div>
    some content
</div>

{{=response.title或request.application}
{{include'web2py_ajax.html'}
{{include}
myview.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="{{=T.accepted_language or 'en'}}">
    <head>
        <title>{{=response.title or request.application}}</title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
        <!-- include requires CSS files
        {{response.files.append(URL(request.application,'static','base.css'))}}
        {{response.files.append(URL(request.application,'static','ez-plug-min.css'))}}
        -->
        {{include 'web2py_ajax.html'}}
    </head>
    <body>
        {{include}}
    </body>
</html>
{{extend 'layout.html'}}
{{response.files.append(URL(r=request,c='static',f='myview.css'))}}

<h1>Some header</h1>
<div>
    some content
</div>
{{extend'layout.html}
{{response.files.append(URL(r=request,c='static',f='myview.css'))}
某个标题
一些内容
在上面的示例中,“myview.css”文件要么被web2py忽略,要么被浏览器删除


那么,加载页面特定文件(如CSS文件)的最佳方式是什么?我不想把所有静态文件都塞进布局中。

在myview.html中,将前两行颠倒过来

{{response.files.append(URL(r=request,c='static',f='myview.css'))}}
{{extend 'layout.html'}}
请注意,1.78.1和1.78.2有一个bug,不允许这样做。当天固定在1.78.3。还可以在需要它的控制器操作中移动response.file.append(…)。您不应该将逻辑放在扩展之前,而是定义要传递给扩展视图的变量