Filesystem Routing
Detailed information about Vike's Filesystem Routing.
For a quick overview see Guides > Routing > Filesystem Routing instead.
Ignored directories
Following directories are ignored by Filesystem Routing:
index/
pages/
src/
(someDir)/
(any directory inside parentheses)
FILESYSTEM URL
========================================================= ========
pages/index/+Page.js /
(marketing)/src/pages/jobs/+Page.js /jobs
(some)/(path)/src/pages/jobs/+Page.js /jobs
contact/+Page.js /contact
pages/pages/src/(some-dir)/src/index/pages/about/+Page.js /about
But they aren't ignored by config inheritance:
Case sensitive
Filesystem Routing is case sensitive:
Crawl space
Vike crawls:
- Files inside Vite's
root
directory.Consequently, all your
+
files need to live insideroot
. To make a directory outside ofroot
crawlable, you can use a symlink (e.g.$ ln -s
) and setVIKE_CRAWL="{git:false}"
. - Skips
node_modules/
- Skips
.gitignore
files (if you use Git).If you want to also crawl these then set
VIKE_CRAWL="{git:false}"
. - Skips soft-symlinked (
$ ln -s
) directories (if you use Git).If you want to also crawl these then set
VIKE_CRAWL="{git:false}"
.
By default Vike uses Git (if your repository uses Git) to crawl your files. If you set VIKE_CRAWL="{git:false}"
then Vike uses fast-glob
instead.
renderer/
If you don't use a UI framework Vike extension vike-react
/vike-vue
/vike-solid
then we recommend placing your UI framework integration in a renderer/
directory.
The hooks /renderer/+onRender{Html,Client}.js
apply as default to all pages /pages/**/+Page.js
.
The renderer/
directory doesn't add any functionality: defining the hooks +onRender{Html,Client}.js
at /renderer/
is equivalent to defining them at /pages/
or /
. It's just an optional convenience for moving rendering logic outside of pages/
: in order to avoid cluttering the pages/
directory and to organize and put all rendering code in one place.
The
renderer/
directory isn't like the list of ignored directories because not only is it ignored by Filesystem Routing but it's also ignored by config inheritance.
⚠️We recommend defining a
renderer/
directory only if you are implementing a custom UI framework (React/Vue/Solid/...) integration.