python - images - flask simple
Enlace a los archivos estáticos de Flask con url_for (2)
¿Cómo se usa url_for en Flask para hacer referencia a un archivo en una carpeta? Por ejemplo, tengo algunos archivos estáticos en la carpeta static , algunos de los cuales pueden estar en subcarpetas como static/bootstrap .
Cuando trato de publicar un archivo desde static/bootstrap , static/bootstrap un error.
<link rel=stylesheet type=text/css href="{{ url_for(''static/bootstrap'', filename=''bootstrap.min.css'') }}">
Puedo hacer referencia a los archivos que no están en subcarpetas con esto, que funciona.
<link rel=stylesheet type=text/css href="{{ url_for(''static'', filename=''bootstrap.min.css'') }}">
¿Cuál es la forma correcta de referenciar los archivos estáticos con url_for ? ¿Cómo utilizo url_for para generar url_for a archivos estáticos en cualquier nivel?
En mi caso, tuve instrucciones especiales en el archivo de configuración nginx:
location ~ /.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar)$ {
try_files $uri =404;
}
Todos los clientes han recibido ''404'' porque nginx no se sabe nada sobre Flask.
Espero que ayude a alguien
Tiene por defecto el punto final estático para archivos estáticos. También la aplicación Flask tiene los siguientes argumentos:
static_url_path : se puede usar para especificar una ruta diferente para los archivos estáticos en la web. El valor predeterminado es el nombre de la carpeta static_folder .
static_folder : la carpeta con archivos estáticos que debe servirse en static_url_path . El valor predeterminado es la carpeta "estática" en la ruta raíz de la aplicación.
Significa que el argumento del filename tomará una ruta relativa a su archivo en static_folder y la convertirá en una ruta relativa combinada con static_url_default :
url_for(''static'', filename=''path/to/file'')
convertirá la ruta del archivo de static_folder/path/to/file a la ruta url static_url_default/path/to/file .
Entonces, si desea obtener archivos de la carpeta static/bootstrap , use este código:
<link rel="stylesheet" type="text/css" href="{{ url_for(''static'', filename=''bootstrap/bootstrap.min.css'') }}">
Que se convertirá a (usando la configuración predeterminada):
<link rel="stylesheet" type="text/css" href="static/bootstrap/bootstrap.min.css">
url_for también url_for documentation .