我正在使用Flask和JavaScript实现自动完成,我正在尝试将JavaScript放在不同的文件中。我的文件夹结构如下:
- Project
- static
| -js
| autocomplete.js
- templates
| index.html
main.py
如果我在index.html
中添加脚本:
<script>
$(function() {
$.ajax({
url: '{{ url_for("autocomplete") }}'
}).done(function (data) {
$('#inputBox').autocomplete({
source: data,
minLength: 1
});
});
});
</script>
它工作正常,但当我将代码放入/static/js/autocomplete.js
并在<script src="../static/js/autocomplete.js"></script>
中添加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_for()
中编写路径?
答案 0 :(得分:2)
{{ url_for('static', filename='js/autocomplete') }}
答案 1 :(得分:1)
你会在这里找到你需要的东西: http://flask.pocoo.org/docs/quickstart/#static-files
基本上你只需要在你的包的根目录下有一个“静态”文件夹,然后你就可以使用url_for('static',filename ='js / autocomplete.js')或直接链接到你的文件{{3 }}