静态资源
静态文件和目录,如图像文件,会在注册 app.static 方法后提供服务。该方法采用端 URL 和文件名。指定的文件将通过给定的端被访问。
from sanic import Sanicfrom sanic.blueprints import Blueprintapp = Sanic(__name__)# Serves files from the static folder to the URL /staticapp.static('/static', './static')# use url_for to build the url, name defaults to 'static' and can be ignoredapp.url_for('static', filename='file.txt') == '/static/file.txt'app.url_for('static', name='static', filename='file.txt') == '/static/file.txt'# Serves the file /home/ubuntu/test.png when the URL /the_best.png# is requestedapp.static('/the_best.png', '/home/ubuntu/test.png', name='best_png')# you can use url_for to build the static file url# you can ignore name and filename parameters if you don't define itapp.url_for('static', name='best_png') == '/the_best.png'app.url_for('static', name='best_png', filename='any') == '/the_best.png'# you need define the name for other static filesapp.static('/another.png', '/home/ubuntu/another.png', name='another')app.url_for('static', name='another') == '/another.png'app.url_for('static', name='another', filename='any') == '/another.png'# also, you can use static for blueprintbp = Blueprint('bp', url_prefix='/bp')bp.static('/static', './static')# servers the file directlybp.static('/the_best.png', '/home/ubuntu/test.png', name='best_png')app.blueprint(bp)app.url_for('static', name='bp.static', filename='file.txt') == '/bp/static/file.txt'app.url_for('static', name='bp.best_png') == '/bp/test_best.png'app.run(host="0.0.0.0", port=8000)
