# Where Are Jenkins Web Application Resources Located: Complete Guide to Static Assets

> Discover where Jenkins web application resources are located. Learn about static assets in the jenkinsci/jenkins repo and their WAR file packaging for easy access.

- Repository: [Jenkins/jenkins](https://github.com/jenkinsci/jenkins)
- Tags: how-to-guide
- Published: 2026-08-01

---

**Jenkins web application resources are stored in the `war/src/main/webapp/` directory of the jenkinsci/jenkins repository and packaged into the root context (`/`) of the Jenkins WAR file during the Maven build process.**

All static assets powering the Jenkins user interface—including HTML templates, JavaScript utilities, CSS stylesheets, and image assets—reside in a centralized location within the `war` module. When the build completes, these files are bundled into `jenkins.war` and served directly by the servlet container without server-side processing.

## Primary Location: The `war/src/main/webapp/` Directory

According to the jenkinsci/jenkins source code, the definitive source of Jenkins web application resources is:

```

war/src/main/webapp/

```

This directory follows the standard Maven WAR project structure. During compilation, Maven assembles everything under this path into the final `jenkins.war` artifact, placing contents at the web application root. The servlet container then serves these files directly at the root context path, making them accessible to browsers and accessible to Jelly and Groovy views through specific URL patterns.

### Key Subdirectories

The `webapp/` directory organizes assets into functional categories:

- **`scripts/`** – Client-side JavaScript files handling AJAX requests, DOM manipulation, and UI interactions
- **`images/`** – Raster graphics (PNG, GIF) for legacy icon support and build status indicators  
- **`images/svgs/`** – Vector graphics comprising the majority of modern Jenkins UI icons, including the application logo

## Critical Resource Files

The following files represent core Jenkins web application resources referenced throughout the UI:

| File Path | Purpose |
|-----------|---------|
| [`war/src/main/webapp/scripts/utilities.js`](https://github.com/jenkinsci/jenkins/blob/main/war/src/main/webapp/scripts/utilities.js) | Core AJAX helpers and DOM manipulation utilities |
| [`war/src/main/webapp/scripts/redirect.js`](https://github.com/jenkinsci/jenkins/blob/main/war/src/main/webapp/scripts/redirect.js) | Legacy URL redirection logic |
| [`war/src/main/webapp/scripts/loading.js`](https://github.com/jenkinsci/jenkins/blob/main/war/src/main/webapp/scripts/loading.js) | Loading indicator state management |
| `war/src/main/webapp/images/svgs/logo.svg` | Primary Jenkins logo rendered in the header |
| `war/src/main/webapp/images/build-status/build-status-sprite.svg` | SVG sprite sheet for build status icons |
| [`war/src/main/webapp/robots.txt`](https://github.com/jenkinsci/jenkins/blob/main/war/src/main/webapp/robots.txt) | Default web crawler exclusion rules |
| `war/src/main/webapp/mask-icon.svg` | Safari pinned tab icon |

## Accessing Resources in Jelly and Groovy Views

Jenkins server-side views reference these static assets using the `${rootURL}` expression combined with the `/static/` path prefix. The servlet container resolves these paths to the corresponding files in `war/src/main/webapp/`.

Loading the core JavaScript utility library:

```html
<script src="${rootURL}/static/../scripts/utilities.js"></script>

```

Referencing the Jenkins logo SVG in a view:

```html
<img src="${rootURL}/static/../images/svgs/logo.svg" alt="Jenkins">

```

Displaying build status icons using the sprite sheet:

```html
<img src="${rootURL}/static/../images/build-status/build-status-sprite.svg" class="icon">

```

## Build-Time Packaging Process

During the Maven build lifecycle, the `war` module aggregates all resources from `src/main/webapp/` into the final WAR archive. This packaging ensures that:

1. Static assets are available at the application root without context path prefixing issues
2. Browser caching headers can be applied uniformly to static content
3. Plugins can reference core UI assets through predictable URL patterns

The `war/src/main/webapp/` structure maps directly to the deployed application structure, meaning a file at `war/src/main/webapp/images/icon.png` becomes accessible at `https://jenkins-server/images/icon.png` at runtime.

## Summary

- **Jenkins web application resources** reside in `war/src/main/webapp/` within the jenkinsci/jenkins repository
- The **`scripts/`** subdirectory contains client-side JavaScript utilities like [`utilities.js`](https://github.com/jenkinsci/jenkins/blob/main/utilities.js) and [`loading.js`](https://github.com/jenkinsci/jenkins/blob/main/loading.js)
- Vector icons and logos are stored in **`images/svgs/`**, including `logo.svg` and `build-status-sprite.svg`
- Views reference assets using `${rootURL}/static/../` paths that resolve to the webapp root
- Maven packages these files into the root context of `jenkins.war` during the build process

## Frequently Asked Questions

### Where exactly are Jenkins web application resources stored in the source code?

Jenkins web application resources are stored under `war/src/main/webapp/` in the jenkinsci/jenkins GitHub repository. This Maven-standard directory contains all HTML, JavaScript, CSS, and image files that comprise the Jenkins user interface, organized into subdirectories like `scripts/` and `images/`.

### How do Jenkins views reference static web resources?

Jenkins Jelly and Groovy views reference static resources using the expression `${rootURL}/static/../` followed by the relative path from `webapp/`. For example, `${rootURL}/static/../scripts/utilities.js` resolves to the utilities script, while `${rootURL}/static/../images/svgs/logo.svg` loads the application logo.

### What is the difference between the `images/` and `images/svgs/` directories?

The `images/` directory contains legacy raster graphics including PNG and GIF files used for older browser compatibility, while `images/svgs/` houses modern vector graphics that scale for high-DPI displays. The SVG subdirectory contains the majority of current UI icons, including the main Jenkins logo and build status indicators.

### Are web application resources accessible to Jenkins plugins?

Yes, plugins can reference core Jenkins web application resources using the same URL patterns available to core views. However, plugins typically bundle their own static assets in their respective `src/main/webapp/` directories, which get served under the plugin's URL namespace while still leveraging the core asset structure for shared icons and utilities.