Trong phần đầu trang HTML của tôi, tôi có:
<script src="https://raw.github.com/cloudhead/less.js/master/dist/less-1.3.3.js"></script>
Khi tôi tải trang trong trình duyệt của mình (Google Chrome v 27.0.1453.116) và bật các công cụ dành cho nhà phát triển, nó nói:
Từ chối thực thi tập lệnh từ ' https://raw.github.com/cloudhead/less.js/master/dist/less-1.3.3.js ' vì loại MIME của nó ('text / plain') không thể thực thi được và kiểm tra loại MIME nghiêm ngặt được kích hoạt.
Thật vậy, kịch bản sẽ không chạy. Tại sao Chrome nghĩ rằng đây là một tệp văn bản thuần túy? Nó rõ ràng có một .js
phần mở rộng tập tin.
Vì tôi đang sử dụng HTML5, tôi đã bỏ qua type
thuộc tính, vì vậy tôi nghĩ rằng điều đó có thể gây ra sự cố. Vì vậy, tôi đã thêm type="text/javascript"
vào <script>
thẻ, và nhận được kết quả tương tự. Tôi thậm chí đã thử type="application/javascript"
và vẫn nhận được lỗi tương tự.
Sau đó, tôi đã cố gắng thay đổi nó để type="text/plain"
chỉ tò mò. Trình duyệt không trả về lỗi, nhưng tất nhiên JavaScript cũng không chạy.
Cuối cùng tôi nghĩ rằng các khoảng thời gian trong tên tệp có thể làm mất trình duyệt. Vì vậy, trong mã HTML của mình, tôi đã thay đổi tất cả các dấu chấm thành ký tự thoát URL %2E
:
<script src="https://raw.github.com/cloudhead/less%2Ejs/master/dist/less-1%2E3%2E3.js"></script>
Điều này vẫn không hoạt động. Điều duy nhất thực sự hoạt động (tức là trình duyệt không báo lỗi và JS chạy thành công) là nếu tôi tải tệp xuống, tải tệp lên thư mục cục bộ, sau đó thay đổi src
giá trị thành tệp cục bộ. Tôi không muốn làm điều này vì tôi đang cố gắng tiết kiệm không gian trên trang web của riêng tôi.
Làm cách nào để Chrome nhận ra rằng tệp được liên kết thực sự là một loại JavaScript?