What is MIME type "application/x-clojurescript"?

A MIME type is a string that tells browsers and other tools how to handle a particular kind of file.

application/x-clojurescript marks files that hold ClojureScript code. ClojureScript is a variant of Clojure that compiles into JavaScript. This lets developers write code that runs in web browsers or on servers.

Files with this MIME type use the CLJS extension. The identifier helps operating systems, servers, and editors treat them properly.

Read more about MIME types on the IANA page.

Associated file extensions

Usage Examples

HTTP Header

When serving content with this MIME type, set the Content-Type header:


    Content-Type: application/x-clojurescript    
  

HTML

In HTML, you can specify the MIME type in various elements:


    <a href="file.dat" type="application/x-clojurescript">Download file</a>    
  

Server-side (Node.js)

Setting the Content-Type header in Node.js:


    const http = require('http');    
    
    http.createServer((req, res) => {    
      res.setHeader('Content-Type', 'application/x-clojurescript');    
      res.end('Content here');    
    }).listen(3000);    
  

Associated file extensions

FAQs

What is the application/x-clojurescript MIME type used for?

The MIME type application/x-clojurescript identifies source code files written in ClojureScript, a dialect of Clojure that compiles to JavaScript. These files typically use the .cljs extension and are used by build tools (like Leiningen or Shadow-CLJS) to generate executable web code.

Do web browsers execute application/x-clojurescript files directly?

No, web browsers cannot execute ClojureScript natively; they only understand JavaScript. Files served with this MIME type are usually downloaded by the browser for debugging purposes (via Source Maps) so developers can step through the original code instead of the compiled JavaScript.

How do I configure Nginx to serve .cljs files correctly?

To serve ClojureScript files with the correct MIME type in Nginx, add the mapping to your mime.types file or inside a server block. Use the directive: types { application/x-clojurescript cljs; } to ensure the browser handles the file correctly during debugging.

How do I add support for this MIME type in Apache?

For Apache web servers, you can add the type definition to your .htaccess file or the main configuration. Add the line AddType application/x-clojurescript .cljs to map the extension to the MIME type.

Why does the MIME type start with "x-"?

The x- prefix indicates that application/x-clojurescript is a non-standard or experimental type that has not been officially registered with the IANA. While it is the de facto standard used by the Clojure community, it is considered a private or subtype identifier.

What is the difference between .clj and .cljs files?

Files ending in .clj are standard Clojure files meant to run on the Java Virtual Machine (JVM), often labeled as text/x-clojure. In contrast, .cljs files (marked as application/x-clojurescript) are specifically intended to compile into JavaScript for web or Node.js environments.

Why am I getting 404 errors for .cljs files in the browser console?

This usually happens when Source Maps are enabled, but the web server is not configured to serve the .cljs source files. If the server does not recognize the cljs extension, it may block the request or return a 404, preventing you from debugging the original source code.

General FAQ

What is a MIME type?

A MIME (Multipurpose Internet Mail Extensions) type is a standard that indicates the nature and format of a document, file, or assortment of bytes. MIME types are defined and standardized in IETF's RFC 6838.

MIME types are important because they help browsers and servers understand how to process a file. When a browser receives a file from a server, it uses the MIME type to determine how to display or handle the content, whether it's an image to display, a PDF to open in a viewer, or a video to play.

MIME types consist of a type and a subtype, separated by a slash (e.g., text/html, image/jpeg, application/pdf). Some MIME types also include optional parameters.

How do I find the MIME type for a file?

You can check the file extension or use a file identification tool such as file --mime-type on the command line. Many programming languages also provide libraries to detect MIME types.

Why are multiple MIME types listed for one extension?

Different applications and historical conventions may use alternative MIME identifiers for the same kind of file. Showing them all helps ensure compatibility across systems.