2012-11-24 12 views
5

Sono nuovo nell'usare Python e ho riscontrato un problema durante il tentativo di fare riferimento al foglio di stile da un documento .tpl. I miei documenti python, template e css sono tutti nella stessa directory, tuttavia quando carico la pagina usando CMD su "localhost: 8080" mostra il modello senza lo stile applicato.Impossibile fare riferimento al foglio di stile CSS nel modello che viene caricato da python

Nel mio documento modello index.tpl io siamo referenceed tre fogli di stile:

<link rel="stylesheet" type="text/css" href="demo.css" /> 
<link rel="stylesheet" type="text/css" href="style.css" /> 
<link rel="stylesheet" type="text/css" href="animate-custom.css" /> 

E il mio file python emette il modello: index.py:

from bottle import route,template,debug,run 
import sqlite3 

@route('/') 
def player(): 
    return template('index.tpl') 

debug(True) 
run(reloader=True) 
+0

Controllare la mia altra risposta: https://stackoverflow.com/a/45761391/3129414 – arsho

risposta

8

Non ho usato la bottiglia, ma la maggior parte dei framework web richiede di mettere le tue css/js/immagini in una particolare directory (che hai impostato tramite la configurazione). Di solito si chiama "statico" o qualcosa di simile.

Scommetto che se si è tentato di caricare i file CSS direttamente nel browser:

http://localhost:8080/demo.css 

si otterrebbe un 404.

Il modo in cui lo avete attualmente configurato è quello che si fare per roba tradizionale in PHP/CGI - il tuo server web sta cercando i file su disco e li sta servendo. I framework non funzionano (generalmente) in questo modo: si impostano le regole di routing.

L'hai fatto con il decoratore @route ('/') - impostandolo, hai detto bottiglia "qualsiasi richiesta a http: // localhost: 8080/dovrebbe eseguire la funzione player e restituire tutto ciò che genera". Nota che non hai impostato alcuna regola per i tuoi file css.

L'altra possibilità è che non ti riferisci correttamente ai file CSS nel tuo HTML. Se non si ottiene un 404 quando si caricano i file CSS direttamente, postare l'HTML e possiamo dare un'occhiata a questo.

Edit: Ho trovato questo nel documento bottiglia:

http://bottlepy.org/docs/dev/tutorial.html#routing-static-files

File statici come immagini o file CSS non sono serviti automaticamente. È necessario aggiungere un percorso e una funzione di callback per controllare quali file essere serviti e dove trovarli:
from bottle import static_file 
@route('/static/<filename>') 
def server_static(filename): 
    return static_file(filename, root='/path/to/your/static/files') 
+0

Grazie per la vostra rapida risposta, che ha funzionato per me grazie – Zanmato

Problemi correlati