# Assets

> 

Horn uses the standard Vite asset model.

## `public/`

Use `public/` for files that should be served as-is:

- `favicon.ico`
- social images
- `robots.txt` if you do not want to generate it from `server/routes`

Files in `public/` are copied to the built client output without import processing.

## `app/assets/`

Use `app/assets/` for files that should go through Vite:

- images imported by Vue components
- fonts referenced from CSS
- icons used inside route components

```ts
import logoUrl from '../assets/logo.svg'
```

Use `public/` when you need a stable public URL. Use `app/assets/` when you want bundling, hashing, and import semantics.
