플라스크 (Flask)와 자바 스크립트로 자동 완성을 구현 중이며 자바 스크립트를 다른 파일에 넣으려고합니다. 내가 추가하는 경우아약스에서 정적 파일을 호출하는 url_for()
- 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
에 코드를 넣을 때 index.html
에 <script src="../static/js/autocomplete.js"></script>
을 추가, 내가 얻을처럼 내 폴더 구조는 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()
에 경로를 써야하나요? http://flask.pocoo.org/docs/quickstart/#static-files
은 기본적으로 당신이 당신 패키지의 루트에 "정적"폴더를해야하고, 당신은 url_for ('정적', 파일 이름 =의 '의 JS를 사용할 수 있습니다
와 파일에 링크와 같은 : app.route (@'/ 자동 완성 ', 방법 = ['GET ']). 저는 js를 파이썬에서 호출하지는 않지만 반대쪽에서 호출합니다. –
두 복사본을 신중하게 읽으십시오. 이것은 확실히 중복입니다. 정적 파일은 렌더링되지 않습니다. 'url_for'와 같은 것을 렌더링하고 싶다면 템플릿이 필요합니다. 대답은 – davidism