0

所以我想在我的 html 页面中包含一些 js 和 css 文件,flask 提供但希望它们在 /js/ 和 /cs/ 中,而不是所有在 /static/ 中。

我尝试在本地 Flask 实例中执行多个静态路径

使用:

(部分随机命名的cat.html)

<link rel="stylesheet" href="{{url_for('css_static',filename='bootstrap.min.css')}}">        
<link rel="stylesheet" href="/static/css/bootstrap-responsive.min.css">  
<link rel="stylesheet" href="/css/style.css">
<link rel="stylesheet" href="/css/prettify.css">

(app.py 的一部分)

@app.route('/sigma')
def sig():
        return render_template('cat.html')

@app.route('/css/<path:fn>')
def css_static(fn):
        return send_from_directory('/css/',fn)

@app.route('/js/<path:fn>')
def js_static(fn):
        return send_from_directory(app.config['JS_STATIC'],fn)

当我尝试这个时它不起作用(/cat.html)显示内部服务器错误。

当我去/css/bootstrap-responsive.min.css加载它永远......

那我做错了什么?

编辑:似乎唯一打开的目录是/static/...我不知道为什么,因为我有一条/js/路线。

4

2 回答 2

1

我认为您不需要为此定义路线。只需将“js”和“css”目录放在静态目录中即可。

这就是我所做的:

<link rel="stylesheet" href="{{ config["APP_URL"] }}/static/css/style.css">

用您的域替换应用程序 url 部分。

于 2012-10-30T05:50:36.350 回答
0

你可以这样做:

from flask import Flask, render_template, send_from_directory

app = Flask(__name__)

@app.route("/")
def Home_page():
    return render_template("index.html")

@app.route('/images/<filename>')
def images_folder(filename):  
    return send_from_directory('images', filename)

@app.route('/css/<filename>')
def css_folder(filename):  
    return send_from_directory('css', filename)

@app.route('/js/<filename>')
def js_folder(filename):  
    return send_from_directory('js', filename)

if __name__ == "__main__":
    app.run(debug=True)

如果你想下载所有文件:点击这里

于 2021-10-19T12:03:14.827 回答