Javascript url_for()在ajax中调用静态文件

Javascript url_for()在ajax中调用静态文件,javascript,python,flask,jinja2,Javascript,Python,Flask,Jinja2,我正在用Flask和JavaScript实现autocomplete,并试图将JavaScript放在另一个文件中。我的文件夹结构如下: - Project - static | -js | autocomplete.js - templates | index.html main.py 如果我在index.html中添加脚本: $(函数(){ $.ajax({ url:“{url_for(“自动完成”)}” }).完成(

我正在用Flask和JavaScript实现autocomplete,并试图将JavaScript放在另一个文件中。我的文件夹结构如下:

- Project
    - static
    |   -js
    |      autocomplete.js
    - templates
    |   index.html  
    main.py
如果我在
index.html
中添加脚本:


$(函数(){
$.ajax({
url:“{url_for(“自动完成”)}”
}).完成(功能(数据){
$('#inputBox')。自动完成({
资料来源:数据,
最小长度:1
});
});
});
它工作正常,但当我将代码放入
/static/js/autocomplete.js
并在
index.html
中添加
时, 我得到一个404:

127.0.0.1 - - [11/Oct/2017 07:54:10] "GET /%7B%7B%20url_for(%22static%22,%22autocomplete%22)%20%7D%7D HTTP/1.1" 404 -

因此,我应该如何在
url\u for()
中编写路径?

您将在此处找到所需的内容:


基本上,您只需要在包的根目录下有一个“静态”文件夹,然后您就可以使用url_('static',filename='js/autocomplete.js')或直接使用链接到您的文件,您可以在这里找到您需要的:


基本上,您只需要在包的根目录下有一个“static”文件夹,然后就可以使用url_来表示('static',filename='js/autocomplete.js'),或者使用

Tnx直接链接到您的文件以获得答案,但您的示例是在python代码中调用js。我想在js中调用python方法。不能在javascript中调用python方法。如果要从flask调用url,是否需要为此url创建一个路由并调用该路由。抱歉,有一些误解。如果我将上面的javascript放在index.html中,并使用。。。。。然后它就完美地工作了。但是,如果我将脚本放在/static/js/autocomplete.js中的单个文件中,在index.html中,我使用它返回404。找不到路径自动完成…我搞错了,对不起。检查完文档后,我可以添加include以访问url。感谢stnx的回答,但是您的示例是在python代码中调用js。我想在js中调用python方法。不能在javascript中调用python方法。如果要从flask调用url,是否需要为此url创建一个路由并调用该路由。抱歉,有一些误解。如果我将上面的javascript放在index.html中,并使用。。。。。然后它就完美地工作了。但是,如果我将脚本放在/static/js/autocomplete.js中的单个文件中,在index.html中,我使用它返回404。找不到路径自动完成…我搞错了,对不起。检查完文档后,我可以添加include以访问url。感谢python代码有这样一行:@app.route('/autocomplete',methods=['GET'])。我不是从python调用js,而是相反。python代码有一行类似于:@app.route('/autocomplete',methods=['GET'])。我不是从python调用js,而是相反。
{{ url_for('static', filename='js/autocomplete') }}