template python html css flask jinja2

python - flask extends template



usar una hoja de estilo css en una plantilla jinja2 (4)

Estoy haciendo un sitio web usando html, css, flask y jinja2.

Tengo una página trabajando en un servidor de matraz, se muestran los botones y las etiquetas, etc., pero la hoja de estilo css que tengo no está cargada.

¿Cómo vincularía una hoja de estilo a una plantilla jinja2? He mirado alrededor en internet, pero no puedo descubrir cómo.

Aquí está el enlace de la hoja de estilo css; ¿Debo cambiar esto, o el código de python?

<link rel="stylesheet" type="text/css" href="styles.css">

Aquí está mi código de matraz:

@app.route(''/'') def resultstemplate(): return render_template(''questions.html'', head=''Welcome!'')

Aquí están las ubicaciones de los archivos:

/python-code.py /templates/template.html /templates/styles.css


El orden del manejador puede causar los problemas:

url: /stylesheets static_dir: stylesheets url: /.* script: helloworld.application

trabajará en lugar de

url: /.* script: helloworld.application url: /stylesheets static_dir: stylesheets


Probé casi todas las soluciones en . Solo me funcionó cuando coloqué la carpeta static en el mismo directorio que mi archivo run.py Cambié mi estructura de carpetas de:

app/ views static templates run.py

A:

app/ views templates static run.py

Supongo que mover el run.py en run.py lugar también funcionaría. Echa un vistazo a este tutorial de plantillas de Jinja para obtener información adicional. No estoy seguro de por qué tuve que cambiar la estructura para que funcione.


Todos los archivos públicos (los que no se procesan, como plantillas o archivos de Python) deben colocarse en carpetas estáticas dedicadas. Por defecto, Jinja2 tiene una carpeta static llamada static .

Esto debería solucionar su problema:

  1. Mueva /templates/styles.css a /static/styles.css

  2. Actualice su código con el siguiente código, que se traducirá a la ubicación correcta del archivo:

    <link rel="stylesheet" href="{{ url_for(''static'', filename=''styles.css'') }}">

Más información sobre archivos estáticos en Jinja2 está here .


<link rel="stylesheet" type="text/css" href="styles.css">

El valor href debe estar entre comillas.

asegúrese de que el nombre del archivo y la ruta sean correctos O pruebe lo siguiente

<link rel="stylesheet" href="{{ url_for(''static'', filename=''styles.css'') }}"/>