2015-01-19 4 views
3

내 Flask 앱에서. 페이지의 경로가 http://example.com/product/6 인 경우Flask 앱이 상대 경로를 통해 javascript 파일을 찾을 수 없습니까?

<script src="js/main.js"></script>

브라우저는 http://example.com.product/js/main.js에서 JS 파일을 검색하며, 404 오류를 반환 :이 같은이 페이지의 HTML 파일에 JS 파일을 가져올 수 없습니다.

그래서이 문제를 해결하려면 어떻게해야합니까?

답변

1

정적 리소스가 루트 디렉토리를 사용하도록 설정해야합니다 (모든 디렉토리가 유지되는 경우).

그래서 디렉토리는 다음과 같습니다 경우 : 그것은 단지 페이지 URL에 추가되지 않도록

. 
├── app.py 
└── static 
    ├── css 
    ├── img 
    └── js 
     └── main.js 

시도가 자바 스크립트 URL 위에 /를 추가.

<script src="js/main.js"></script>http://example.com/js/main.js으로 갈 것입니다.

FYI - 플러스보다 정적 파일을 서버에 배치 할 때 apache 또는 nginx과 같은 웹 서버를 사용해야합니다.

1

정적 자산의 URL을 생성하려면 url_for을 사용해야합니다.

<script src="{% url_for('static', filename='js/main.js' %}"></script> 
+1

그러나 'url_for'는 자바 스크립트 파일에서 작동하지 않습니다. – Hojas

+0

JavaScript 파일을로드하는 방법에 대해 질문했습니다. 이를 위해'url_for'를 사용해야합니다. JavaScript 파일 내에서 URL을 참조하는 방법을 알고 싶다면 JavaScript에서 URL을 템플릿 파일에 배치하거나 URL을 JavaScript 파일에 직접 배치하여 완전히 다른 질문을 할 수 있습니다. – dirn

관련 문제