2012-04-29 6 views
5

Hice una aplicación de matraz muy simple que lee su contenido de un archivo .html. La aplicación funciona a excepción del estilo. Extrañamente, mi código CSS en línea funciona pero no la hoja de estilo externa. Revisé la sintaxis, debería funcionar. ¿El matraz impide de algún modo que se lea el archivo .css?Aplicación de matraz simple que lee su contenido de un archivo .html. Hoja de estilo externo está bloqueado?

Los archivos en la carpeta pueden verse here. Esos 3 archivos están todos en la misma carpeta.

Respuesta

14

Su código no está sirviendo archivos usando Flask, simplemente está leyendo un archivo y enviándolo al navegador, por lo que las URL no funcionan.

Debe procesar el archivo desde el mismo método.

Primero haga una carpeta templates en el mismo directorio que su archivo .py y mueva su archivo html a esta carpeta. Cree otra carpeta llamada static y ponga su hoja de estilo en esa carpeta.

Debe tener

/flaskwp1.py 
/templates 
    webcode.html 
/static 
    webcodestyle.css 

A continuación, ajuste el código de esta manera:

from flask import Flask, render_template 

app = Flask('flaskwp1') 
# webcode = open('webcode.html').read() - not needed 

@app.route('/') 
def webprint(): 
    return render_template('webcode.html') 

if __name__ == '__main__': 
    app.run(host = '0.0.0.0', port = 3000) 

Editar webcode.html:

<link rel="stylesheet" 
     type="text/css" 
     href="/static/webcodestyle.css"/> 
+0

Hice mi estructura de carpetas exactamente como la tuya y ajusté mi archivo 'flaskwp1.py' y' webcode.html' como lo escribiste. Aún permanece igual. : (. Gracias por ser tan elaborado. – Bentley4

+0

Buena medida: https://gist.github.com/2552506 – Bentley4

+0

Utilice la plantilla HTML actualizada. –

3

Debe crear una url y un directorio estáticos específicos.

url_for('static', filename='style.css') 

permitirá a su aplicación para buscar un archivo llamado 'style.css' dentro de una carpeta llamada 'estática' en la raíz de su módulo de aplicación web. Estará disponible para su aplicación web en url '/static/style.css'

Es posible que desee publicar el contenido del archivo html y el código python para que podamos ver lo que podría estar fallando. Parece que la url es incorrecta o no tienes configurado tu servidor web para servir archivos estáticos desde esa ubicación.

+0

he publicado todos los archivos de mi Webfolder, haga clic en "aquí" en la publicación original. He intentado su sugerencia. No cambió nada. Puede ver el archivo .py que ajusté de acuerdo con su explicación [aquí] (https://gist.github.com/2551827). Si el archivo .css está en la misma carpeta que el archivo .py y .html (la configuración de mi carpeta original), ¿por qué incluso necesitaría la función 'url_for()'? – Bentley4

Cuestiones relacionadas