TLDR; If you are using the
FileSystemBootstrapper
on thearchtechx/tenancy
package and also theLaravel-Vite package, update your tenancy config (tenancy.filesystem.asset_helper_tenancy
) tofalse
. Otherwise your generated script/style tags after building assets will be returning a tenant-scoped asset URL.
Here is the context of the problem I was facing:
I am building a multi-tenant SaaS application using this tenancy package fromTenacy for Laravel. It has a concept of tenancy bootstrappers that modifies relevant framework defaults to make the application tenant aware. TheFileSystem Bootstrapper makes the Laravelasset()
helper method return tenant specific assets through aTenantAssetController
.
I also replaced Laravel Mix withVite and I'm using thisLaravel Vite package to make the integration easier. The package provides@vite
directive to output all the necessary asset tags in your blade file. The underlying methods use theasset()
helper method from the framework. Therefore, any generated asset URL is tenant-scope if I am under a tenant aware route. I am using VueJS for templating so my page ends up not being rendered correctly.
The solution is to update a tenancy config (tenancy.filesystem.asset_tenancy_helper
) tofalse
. Theasset()
helper revert to default. The tenancy package still providestenant_asset()
helper method for tenant specific assets.
I hope this helps someone out there facing the same issue and save you time.
Top comments(6)

Hello@steekam
Thanks for this article, it helped me a lot.
Now when I use the tenant_asset() function to define a manifest file for each tenant:
<link rel="manifest" href="{{tenant_asset('manifest.json')}}">
I get a URL like this:
http://subdomain.domain.com:8000/tenancy/assets/manifest.json
Where should I put the manifest.json?
Under storage, I have storage/tenant1/app
Thanks so much.

- LocationNairobi, Kenya
- EducationBsc. Informatics and Computer Science
- Pronounshe/him
- WorkProduct @ Patrium Health
- Joined
Hey,
Out of curiosity, why does each tenant have their ownmanifest.json
file?
I am assuming this is the generated manifest file for vite,

Thanks Kamau, certainly helped me get the fix for this quickly, was scratching my head for a moment there.

- LocationNairobi, Kenya
- EducationBsc. Informatics and Computer Science
- Pronounshe/him
- WorkProduct @ Patrium Health
- Joined
I spent hours scratching my head so others won't have to :)

Hello@steekam
Thanks for this article, it helped me a lot.
Now when I use the tenant_asset() function to define a manifest file for each tenant:
I get a URL like this:
subdomain.domain.com:8000/tenancy/...
Where should I put the manifest.json
Under storage, I have storage/tenant1/app
Thanks so much.
For further actions, you may consider blocking this person and/orreporting abuse