Flask:使用url_for提供没有前导斜杠的资产

时间:2018-03-12 00:37:46

标签: python flask routing relative-path

我正在处理使用url_for指定某些静态资产(js,css等)路径的Flask应用。以下是其中一个模板的示例:

<script src='{{ url_for('static', filename='js/search.js') }}'></script>

当它被渲染成html时,路径如下所示:

<script src='/static/js/search.js'></script>

是否可以修改此行为,以便从呈现的脚本路径中删除前导斜杠?目标是呈现以下内容:

<script src='static/js/search.js'></script>

我非常感谢其他人可以就此问题提供的任何见解!

1 个答案:

答案 0 :(得分:0)

我在加载位于自定义静态路径上的css文件时遇到类似的问题。 一种解决方法是更改​​应用程序的ROOT_DIRECTORY,但这不适用于我的应用程序,因为我只需要更改静态路径即可。

我结合使用了static_folder和static_url_path:

STATIC_URL_PATH = '/your/custom/path/static' # Where the css is stored
STATIC_FOLDER = 'your/custom/path/static'

app = Flask(__name__, static_folder=STATIC_FOLDER,
            static_url_path=STATIC_URL_PATH)

如您所见,主要区别是开头的/,但这使应用程序能够找到CSS。