Route setup
WARNING
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=""
/>