2010-05-21 19 views
6

Dada una vista con diseño, ¿cómo puedo cargar archivos estáticos (CSS y JS, esencialmente) en el <cabeza> desde el archivo de vista?Cómo cargar archivos estáticos de HTML de vista en web2py?

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 específicos de la página como este archivo CSS? Prefiero no meter todos mis archivos estáticos en mi diseño.

Respuesta

7

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 permitió que esto funcione. Se corrigió en 1.78.3 el mismo día. El archivo response.file.append (...) también se puede mover en la acción del controlador que lo necesite. No se supone que debes poner la lógica antes de extender, pero defines variables para pasar a la vista extendida.

+0

Perfecto. ¡Gracias! – MikeWyatt

Cuestiones relacionadas