Kiểu MIME .mjs: text/javascript

Các file có đuôi .mjs (JavaScript module) sử dụng kiểu MIME text/javascript.

Cập nhật

text/javascript
Kiểu MIME cho .mjs
Web
Danh mục
Có
Nén bằng gzip/Brotli

Kiểu MIME của file .mjs là gì?

Kiểu MIME (media type) của file JavaScript module có đuôi .mjs là text/javascript. Bạn cũng có thể gặp application/javascript. Kiểu này cũng được dùng cho .js. Đuôi .mjs đánh dấu các ES module trong Node.js. Một số máy chủ cũ không nhận ra đuôi này và gửi application/octet-stream, khiến trình duyệt từ chối các script module, vì vậy hãy khai báo kiểu này một cách rõ ràng.

Header Content-Type

Content-Type: text/javascript; charset=utf-8

Các kiểu dạng văn bản nên có charset để trình duyệt giải mã ký tự đúng cách.

Cấu hình máy chủ

Máy chủCấu hình
Nginx (mime.types hoặc types {})text/javascript mjs;
Apache (.htaccess)AddType text/javascript .mjs
IIS (web.config)<mimeMap fileExtension=".mjs" mimeType="text/javascript" />
Node.js / Expressres.type('mjs') hoặc res.setHeader('Content-Type', 'text/javascript; charset=utf-8')
Amazon S3Đặt Content-Type: text/javascript trên object (metadata), hoặc truyền --content-type text/javascript vào aws s3 cp

Có nên nén file .mjs không?

Có. JavaScript module là văn bản, nên bật gzip hoặc Brotli cho text/javascript thường giúp giảm 50–80 % dung lượng truyền tải. Hãy đảm bảo danh sách nén của máy chủ có kiểu này, và kiểm tra bằng công cụ kiểm tra nén website.

Vì sao kiểu MIME quan trọng

Trình duyệt quyết định xử lý phản hồi (hiển thị, chạy, phát hay tải xuống) dựa trên header Content-Type, không phải đuôi file. Với X-Content-Type-Options: nosniff, kiểu sai sẽ khiến stylesheet và script bị chặn hoàn toàn. Với file tải lên, đừng bao giờ tin kiểu do client gửi; hãy kiểm tra nội dung file (magic bytes) trên máy chủ.

Câu hỏi thường gặp

Kiểu MIME của .mjs là gì?
text/javascript. Một lựa chọn khác thường gặp: application/javascript.
Làm sao để đặt Content-Type cho .mjs trong Nginx?
Đảm bảo text/javascript mjs; có trong khối types (thường nằm trong /etc/nginx/mime.types), rồi tải lại Nginx.
Có nên nén file .mjs bằng gzip không?
Có, định dạng này nén rất tốt, nên hãy thêm kiểu này vào cấu hình gzip/Brotli của bạn.