首页 > 解决方案 > Flask 脚本 url_for 未找到

问题描述

我有个问题。Flask 应用程序响应 404 not found at this .css url。

在此处输入图像描述

如何在 javascript 文件中编写此 jinja 代码?

{{ url_for('static', filename='assets/css/themes/') }}

Javascript 文件

var setColor = function (color) {
            var color_ = (App.isRTL() ? color + '-rtl' : color);
            $('#style_color').attr("href", "assets/css/themes/" + color_ + ".css");
        }

标签: javascriptpythonflaskjinja2

解决方案


Jinja 2 预计仅模板化 html 文件:除非您将脚本放在 html 中并对其进行模板化(我不鼓励这样做),否则您不能直接在 javascript 静态文件中使用模板化。

但是,您可以将包含链接的部分 html 模板化,例如在数据属性或共享变量中,以便由 javascript 恢复。

在页面中

<div id="mydiv" data-myurl='{{ url_for('static', filename='assets/css/themes/') }}'> </div>

在 JavaScript 中

 $('#style_color').attr("href", $("#mydiv").data('myurl'))

推荐阅读