Pregunta

Dado un punto de vista con el diseño, ¿cómo puedo cargar archivos estáticos (CSS y JS, esencialmente) en el del archivo de vista?

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>

myview.html

{{extend 'layout.html'}}
{{response.files.append(URL(r=request,c='static',f='myview.css'))}}

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

En el ejemplo anterior, el archivo "myview.css" se ignora por web2py o despojado a cabo por el navegador.

Entonces, ¿cuál es la mejor manera de cargar archivos de páginas específicas de este tipo de archivos CSS? Yo prefiero no meto todos mis archivos estáticos en mi diseño.

¿Fue útil?

Solución

En myview.html revertir las dos primeras líneas

{{response.files.append(URL(r=request,c='static',f='myview.css'))}}
{{extend 'layout.html'}}

Mente que 1.78.1 y 1.78.2 tenía un error no permitir que esto funcione. Se fija en 1.78.3 en el mismo día. El response.file.append (...) también se puede mover en la acción del controlador que lo necesita. No se supone que poner la lógica antes de extender, pero es necesario definir variables que se pasan a la vista ampliada.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top