Come caricare i file statici da visualizzazione HTML in web2py?
-
04-10-2019 - |
Domanda
Dato vista con il layout, come posso caricare i file statici (CSS e JS, essenzialmente) nella
dal file di 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>
Nell'esempio precedente, il file "myview.css" o è ignorato da web2py o spogliato fuori dal browser.
Allora, qual è il modo migliore per i file di pagina specifici carico come questo file CSS? Preferirei di no ammucchio tutti i miei file statici in mio layout.
Soluzione
In myview.html invertire le prime due righe
{{response.files.append(URL(r=request,c='static',f='myview.css'))}}
{{extend 'layout.html'}}
Ricordate che 1.78.1 e 1.78.2 ha un bug non permettere che questo lavoro. E 'stato fissato in 1.78.3 lo stesso giorno. Il response.file.append (...) può anche essere spostato nell'azione controller che ne ha bisogno. Non sono tenuti a mettere la logica prima di estendere, ma di definire le variabili da passare alla visualizzazione estesa.