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:
Mueva
/templates/styles.css
a/static/styles.css
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'') }}"/>