Skip to content

Route setup

WARNING

⚠️ avalable in v5.0.0

INFO

To prevent conflicts during image generation, the verrou package has been implemented in memory mode. If you use @adonisjs/lock, it will take precedence.

Basic

Now you can create an route for acces at your uploads. If the requested variant does not exist, it will be generated on the fly.

ts
// start/routes.ts
import router from '@adonisjs/core/services/router'

router.attachments() 

Custom pattern

ts
// start/routes.ts
import router from '@adonisjs/core/services/router'

router.attachments('/assets/:key/*') 

// default is '/attachments/:key/:name?'

Identifier

ts
// start/routes.ts
import router from '@adonisjs/core/services/router'

router.attachments('/assets/:key/:name?').as('assets') 

Query string options

  • variant : variant name

Variant

It is possible to generate variants after entity creation to optimize the initial image loading.

Example

ts
class UsersController {
  public show({ request, view }: HttpContext) {
    const user = User.first()

    return view.render('user/show', {
      user: await user.serialize()
    })
  }
}
edge
// edge example
<img 
  src="{{ 
    route('assets', { key: user.avatar.keyId, name: 'image-name.jpg' }, { qs: { 
      variant: 'thumbnail'
    }}) 
  }}"
  loading="lazy"
  alt=""
/>