Vercelのディレクトリ構造がわからない
Mijikko.icon from 2023/03/21
Vercelのディレクトリ構造わからなさすぎる
とりあえずこういう構造を用意した
https://gyazo.com/cc1171dd75ab7c292400ac913c2f4f27
今わかっていること
publicディレクトリを作成すると、静的なファイルの配信ができる
https://gyazo.com/8c8442ac06af0ca699cc2c0a9c1382c3
Basic Features: 静的ファイルの配信 | Next.js
publicディレクトリを作成しなかった場合(または.vercelignoreから除外した場合)はおそらくルートディレクトリがpublicと同様の扱いになる
https://gyazo.com/0113fccf34b45df4330481a1f4003da9
apiディレクトリはpublicディレクトリがどこにあろうと/apiに配置される
serverless functionはapiディレクトリの中にしか入れられない
他の場所に入れてアクセスしてもダウンロードファイルとして扱われる
ファイルの除外はされないっぽい
vercel.json内でapi以外のディレクトリにあるファイルを指定するとvercel dev実行時にエラーが出る
https://gyazo.com/aae71d413a6f557ddfa5f3f65bd6730a
vercel.jsonにこの設定をすると、何故かpublicディレクトリ直下のファイルとapiディレクトリ直下のファイルがルートパスでアクセスできるようになる
code:vercel.json
{
"functions": {
"**/*.jts?(x)": {
"runtime": "vercel-deno@3.0.1"
}
},
"rewrites": [
{
"source": "/public/:path(.*)",
"destination": "/public/:path"
},
{
"source": "/:path(.*)",
"destination": "/api/:path"
}
],
"github": {
"silent": true
}
}
"rewrites"以外の設定は関係ない
じゃあファイル名が被ったらどうなるのかってなりそうだけれども
https://gyazo.com/55258392cf72ab6227d361a28f149dd7
https://gyazo.com/c8ed0382d13a74a9616fc579258b2086
api以下のファイルは拡張子が省略され、public以下のファイルは拡張子込みで表示されるので、ダブるということがまず無い