Nếu bạn đang làm việc trên một dự án giao diện người dùng nhỏ và muốn kiểm tra nó cục bộ, bạn thường mở nó bằng cách trỏ thư mục cục bộ của mình trong trình duyệt web, chẳng hạn như nhập tệp: /// home / erick / mysuperproject / index .html trong thanh URL của bạn. Tuy nhiên, nếu trang web của bạn đang cố gắng tải các tài nguyên, ngay cả khi chúng được đặt trong thư mục cục bộ của bạn, bạn có thể thấy các cảnh báo như sau:
XMLHttpRequest không thể tải tệp: ///home/erick/mysuperproject/mylibrary.js. Yêu cầu gốc chéo chỉ được hỗ trợ cho HTTP.
Chrome và các trình duyệt hiện đại khác đã triển khai các hạn chế bảo mật cho Yêu cầu nguồn gốc chéo, có nghĩa là bạn không thể tải bất kỳ thứ gì thông qua tệp: ///, bạn cần sử dụng giao thức http: // mọi lúc, ngay cả chính sách cục bộ -due Same Origin. Đơn giản như vậy, bạn cần phải mount một máy chủ web để chạy dự án của mình ở đó.
Đây không phải là ngày tận thế và có rất nhiều giải pháp ngoài kia, bao gồm Apache cũ tốt (với VirtualHosts nếu bạn đang chạy một số dự án khác), node.js với express, máy chủ Ruby, v.v. hoặc đơn giản là sửa đổi cài đặt trình duyệt.
Tuy nhiên, có một giải pháp đơn giản và nhẹ nhàng cho những người lười biếng. Bạn có thể sử dụng SimpleHTTPServer của Python. Nó đã đi kèm với python nên bạn không cần phải cài đặt hoặc cấu hình bất cứ thứ gì!
Ví dụ: cd vào thư mục dự án của bạn
1 cd / home / erick / mysuperproject và sau đó chỉ cần sử dụng
1 python -m SimpleHTTPServer Và thế là xong, bạn sẽ thấy thông báo này trong thiết bị đầu cuối của mình
1 Cung cấp HTTP trên cổng 0.0.0.0 8000 ... Vì vậy, bây giờ bạn có thể quay lại trình duyệt của mình và truy cập http://0.0.0.0:8000với tất cả các tệp thư mục của bạn được phục vụ ở đó. Bạn có thể cấu hình cổng và những thứ khác, chỉ cần xem tài liệu. Nhưng thủ thuật này chỉ đơn giản là phù hợp với tôi khi tôi đang gấp rút thử nghiệm một thư viện mới hoặc tìm ra một ý tưởng mới.
Bạn hiểu rồi, viết mã vui vẻ!
CHỈNH SỬA:
Trong Python 3+, SimpleHTTPServer đã được thay thế bằng http.server. Vì vậy, trong Python 3.3, ví dụ, lệnh sau là tương đương:
python -m http.server 8000