Esta es el arreglo más exacta que te podemos compartir, sin embargo mírala detenidamente y valora si es compatible a tu proyecto.
Solución:
El método preferido es usar nginx u otro servidor web para servir static archivos; podrán hacerlo de manera más eficiente que Flask.
Sin embargo, puedes usar send_from_directory
para enviar archivos desde un directorio, lo que puede ser bastante conveniente en algunas situaciones:
from flask import Flask, request, send_from_directory
# set the project root directory as the static folder, you can set others.
app = Flask(__name__, static_url_path='')
@app.route('/js/')
def send_js(path):
return send_from_directory('js', path)
if __name__ == "__main__":
app.run()
Hacer no usar send_file
o send_static_file
con una ruta proporcionada por el usuario.
send_static_file
ejemplo:
from flask import Flask, request
# set the project root directory as the static folder, you can set others.
app = Flask(__name__, static_url_path='')
@app.route('/')
def root():
return app.send_static_file('index.html')
Si solo desea mover la ubicación de su static archivos, entonces el método más simple es declarar las rutas en el constructor. En el siguiente ejemplo, he movido mis plantillas y static archivos en una subcarpeta llamada web
.
app = Flask(__name__,
static_url_path='',
static_folder='web/static',
template_folder='web/templates')
static_url_path=''
elimina cualquier ruta anterior de la URL (es decir, la ruta predeterminada/static
).static_folder='web/static'
para servir cualquier archivo que se encuentre en la carpeta
web/static
como static archivostemplate_folder='web/templates'
De manera similar, esto cambia la carpeta de plantillas.
Usando este método, la siguiente URL devolverá un archivo CSS:
Y finalmente, aquí hay una instantánea de la estructura de carpetas, donde flask_server.py
es la instancia de Flask:
También puede, y este es mi favorito, establecer una carpeta como static ruta para que los archivos internos sean accesibles para todos.
app = Flask(__name__, static_url_path='/static')
Con ese conjunto puedes usar el HTML estándar:
Aquí tienes las reseñas y calificaciones
Tienes la opción de asentar nuestro ensayo fijando un comentario y puntuándolo te lo agradecemos.