Tài nguyên được hiểu là Tập lệnh nhưng được chuyển với loại MIME văn bản / thuần - cho tệp cục bộ


97

Tôi nhận được cảnh báo "Tài nguyên được hiểu là Tập lệnh nhưng được chuyển với loại MIME văn bản / thuần túy" trong Google Chrome khi bao gồm tệp tập lệnh cục bộ.

Tôi biết sự cố xuất hiện khi tải tệp từ máy chủ hoặc thông qua ajax, điều này thường phụ thuộc vào việc đặt sai tiêu đề.

Điều kỳ lạ là tôi nhận được cảnh báo này mặc dù nó được chạy từ một thư mục cục bộ: file:///C:/test/foo.html

Điều này chỉ xảy ra trong Chrome với html cơ bản nhất có:

<!DOCTYPE html>
    <html>
    <head>
        <script type="text/javascript" src="bar.js"></script>
    </head>
    <body>
    </body>
</html>

bar.js cũng đơn giản như nó có thể nhận được:

function hello() {}

Tôi đã thử thêm thẻ meta:

<meta http-equiv="content-script-type" content="text/javascript">

và đã thử nghiệm với các loại tài liệu khác nhưng dường như không có gì hữu ích.

Đây rõ ràng không phải là một vấn đề thực sự vì các tập lệnh vẫn hoạt động tốt, nhưng tôi đang làm việc trong một dự án lớn và hiện có khoảng 150 tập lệnh được bao gồm. Do đó, rất khó để biết khi nào một cảnh báo thực sự xảy ra giữa chúng.

Mọi thứ hoạt động tốt khi tôi chạy tệp trên máy chủ, cục bộ hoặc từ xa.

Bất kỳ ý tưởng nào về lý do tại sao chrome lại làm phiền tôi với điều này?


Bạn đã không tình cờ cài đặt Visual Studio mới nhất vào ngày hôm trước, phải không? Điều này bắt đầu xảy ra với tôi và thats điều duy nhất mà thay đổi ...
Simon Sarris

vâng, VS Express 2012 RC một vài tuần trước. Tôi cũng đã nghĩ về điều đó nên thay vào đó tôi đã tạo các tệp bằng notepad ++ nhưng vấn đề vẫn vậy. Nếu VS đang gây ra điều này thì họ phải thay đổi một số cài đặt / tham số chung? Câu hỏi là gì và làm cách nào để thay đổi lại nó?
batzkoo

Tôi vẫn đang cố gắng tìm ra điều tương tự. Nó dường như là một điều toàn cầu và nó đã xảy ra chính xác sau khi tôi cài đặt VS2012. Tôi sẽ cho bạn biết nếu tôi tìm ra bất cứ điều gì. Để rõ ràng, tôi không thực sự sử dụng Visual Studio để chỉnh sửa tệp, điều này khiến nó trở nên lạ lẫm.
Simon Sarris

Câu trả lời:


195

Tôi đã hiểu rồi!

Trình cài đặt Visual Studio phải thêm một dòng sai vào sổ đăng ký.

mở ra regeditvà xem khóa đăng ký này:

nhập mô tả hình ảnh ở đây

Có thấy chìa khóa không? Phím Loại Nội dung? thay đổi giá trị của nó từ văn bản / thuần túy thành văn bản / javascript.

Cuối cùng rôm sảy cũng có thể thở dễ dàng trở lại.

Tôi nên lưu ý rằng không có Content Type và PerciosystemType theo mặc định trên Windows 7, vì vậy bạn có thể xóa cả hai một cách an toàn, nhưng điều tối thiểu bạn cần làm là chỉnh sửa.

Dù sao tôi cũng hy vọng điều này sửa chữa nó cho bạn!


8
Bạn làm tốt lắm! để tìm ra giải pháp cho sự khó chịu này. Tôi đã không xóa khóa nhưng thay vào đó đã thay đổi giá trị dữ liệu thành văn bản / javascript. Cảm ơn!
batzkoo

haha Tôi đã thay đổi nó thành văn bản / script và nó không hoạt động, có lẽ tôi nên thử text / javascript!
Simon Sarris

Cảm ơn vì Giải pháp! Tôi đã gặp vấn đề tương tự ... Trên thực tế, với loại MIME văn bản thuần túy / đối với tôi, mã javascript đã gây ra lỗi. Tôi có một số chuỗi (trong một mảng) chứa các chữ cái được tìm thấy trong bảng mã UTF-8 được thấy trong các ngôn ngữ Đông Âu như "ő". "Gergő" là tên riêng của người Hungary. Cảm ơn chúa cũng đã xảy ra lỗi, vì tôi không thể chạy mã của mình - nhưng tôi đã không điều tra thêm về điều này.
Zoltan

2
Wow, làm thế nào bạn phát hiện ra giải pháp này?
Pakman

4
@Pakman Tôi gặp sự cố vào một ngày nọ, sau đó tôi mua một máy tính mới và không gặp sự cố. Sau đó, khi tôi cài đặt Visual Studio 2012, tôi nhận thấy rằng nó xuất hiện lại, vì vậy tôi đã tìm ra đó là thủ phạm. Tôi nhận ra rằng nó đã thay đổi điều gì đó trong các liên kết tệp của sổ đăng ký vì tất cả .jscác tệp của tôi đều có .txtbiểu tượng trông, vì vậy tôi đã đi đảm bảo rằng chúng được liên kết với loại dữ liệu phù hợp. Họ đã không!
Simon Sarris

30

Tôi đã thử khắc phục sự cố này bằng cách sử dụng phương pháp này nhưng nó không hiệu quả với tôi.

Vấn đề của tôi là trình quản lý IIS không có loại MIME trong Tính năng HTTP.

Tôi đã có thể bật tính năng này bằng cách bật Ngữ cảnh tĩnh qua ...

-> Bảng điều khiển

-> Chương trình

-> Bật hoặc tắt các tính năng của Windows

-> Dịch vụ thông tin Internet

-> Dịch vụ World Wide Web

-> Các tính năng HTTP phổ biến

-> [X] Nội dung tĩnh.

Sau đó, các loại MIME xuất hiện và mọi thứ bắt đầu hoạt động trở lại.


0

Câu trả lời được chấp nhận là một câu trả lời tuyệt vời! Tuy nhiên, chỉ để đăng câu trả lời cho những người gặp phải vấn đề như tôi, những người đôi khi sử dụng máy tính của khoa / trường đại học, nơi tôi không có quyền thay đổi bất kỳ giá trị khóa nào trong regedit.

Thay đổi

<script type="text/javascript" src="main.js"></script>

đến

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

Mặc dù thông báo lỗi vẫn tồn tại nhưng trang đã được tải đúng cách.


2
Nhưng vấn đề của OP là trang tải chính xác, nhưng anh ta vẫn nhận được thông báo lỗi. Điều này dường như không thay đổi bất cứ điều gì.
Teepeemm
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.