2013-02-05 19 views
22

Tôi có một tập tin HTML có tên showMap.htmlngoài javascript tập tin là không nhận được thêm vào khi chạy trên bình

<!DOCTYPE html> 
<html> 
<head> 
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" /> 
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/> 
<title>Map</title> 
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false">    
</script> 
<script type="text/javascript" src="js/map.js"></script> 
</head> 
<body onload="showPosition()"> 
<div id="map_canvas" style="width:500px;height:500px;"></div> 
</body> 
</html> 

Và một javascript map.js tập tin được đặt trong thư mục js của cùng một mã directory.This hoạt động tốt khi tệp html được tải.Nhưng điều này không hoạt động khi tôi chạy nó trong server.I sử dụng khung python flask cho chương trình kết thúc trở lại.Và điều thú vị là điều tương tự sẽ hoạt động tốt nếu tôi mở rộng mã javascript trong tệp html. Vấn đề duy nhất là với tệp bên ngoài.

Trả lời

53

Phục vụ các tập tin map.js như một static resource:

  • di chuyển các tập tin vào một thư mục con static/ của gói của bạn

  • tạo ra một URL tĩnh cho nó trong một mẫu Jinja2 như vậy:

    <script type="text/javascript" src="{{ url_for('static', filename='map.js') }}"></script> 
    
+0

Tuy là không nhận được nó.Tôi đã thêm một thư mục con tĩnh và sử dụng các mẫu jinja2 như được đưa ra ở trên. Tôi có nên vượt qua một số đối số từ python trong khi rendering? Hoặc bất kỳ thay đổi hệ thống khác là có để áp dụng ?? – Tony

+2

@Tony: Công việc 'http: // localhost: 5000/static/map.js' có hoạt động không? Khi bạn hiển thị mẫu 'showMap.html' của mình, nó có bao gồm URL' static/map.js' trong nguồn không? –

+0

Không .. nó chỉ hiển thị http://127.0.0.1✓000/ – Tony

1

Bước 1: Tạo thư mục với tên tĩnh trên gốc của dự án

Bước 2: Thêm file tĩnh trong thư mục tĩnh

Bước 3 Thêm trong mẫu

<script type="text/javascript" src="{{ url_for('static', filename = 'hello.js') }}"></script>