如何在部署到 Vercel 的 Next js 中禁用目录列表
How to disable directory listing in Next js deployed to Vercel
我已经部署了内置网站 Next.js
显然,当您部署下一个 js 应用程序时,您可以找到我不太满意的所有静态文件和资源的目录。
目录是这样生成的:mydomain.com/_next/static
在我的例子中是https://www.ovanya.com/_next/static/
这是目录:
下一个js docs 说:
To prevent showing a Directory Listing page, add an index file, such as index.html, which will then show that file instead when accessing the directory's path.
但是我真的不明白我应该把index.html文件添加到什么目录?那么我应该把 index.html 放在什么地方呢?
还有一个问题:如果我就这样离开它不好吗?它有任何风险或类似的东西吗?
2021 年更新
您可以在项目设置 -> 高级中禁用目录列表(参见 docs)。
2021 年之前
您需要将 index.html
递归地添加到 _next
和每个子目录。您可以通过编写一个 post-build 脚本来完成它。
但是,这样做没有任何好处。公开此目录或其中的文件没有风险。
_next/static
只是编译客户端 public assets.
我也在寻找解决方案并尝试创建自定义 post-build 脚本但没有成功。我的最终解决方案是在根项目目录的 vercel.json
文件中创建重定向规则。
这是我的vercel.json
{
"redirects": [
{
"source": "/_next",
"destination": "/404",
"statusCode": 404
},
{
"source": "/_next/static",
"destination": "/404",
"statusCode": 404
},
{
"source": "/_next/static/([A-z0-9_-]{21})",
"destination": "/404",
"statusCode": 404
},
{
"source": "/_next/static/chunks",
"destination": "/404",
"statusCode": 404
},
{
"source": "/_next/static/css",
"destination": "/404",
"statusCode": 404
},
{
"source": "/_next/static/images",
"destination": "/404",
"statusCode": 404
}
]
}
您可以在 Vercel Dashboard > 您的项目部署 > 源 > 输出中检查,如果您有其他目录要隐藏。
使用此配置部署站点后,当您访问该站点时将呈现 404 页面 URL。
我已经部署了内置网站 Next.js
显然,当您部署下一个 js 应用程序时,您可以找到我不太满意的所有静态文件和资源的目录。
目录是这样生成的:mydomain.com/_next/static
在我的例子中是https://www.ovanya.com/_next/static/
这是目录:
下一个js docs 说:
To prevent showing a Directory Listing page, add an index file, such as index.html, which will then show that file instead when accessing the directory's path.
但是我真的不明白我应该把index.html文件添加到什么目录?那么我应该把 index.html 放在什么地方呢?
还有一个问题:如果我就这样离开它不好吗?它有任何风险或类似的东西吗?
2021 年更新
您可以在项目设置 -> 高级中禁用目录列表(参见 docs)。
2021 年之前
您需要将 index.html
递归地添加到 _next
和每个子目录。您可以通过编写一个 post-build 脚本来完成它。
但是,这样做没有任何好处。公开此目录或其中的文件没有风险。
_next/static
只是编译客户端 public assets.
我也在寻找解决方案并尝试创建自定义 post-build 脚本但没有成功。我的最终解决方案是在根项目目录的 vercel.json
文件中创建重定向规则。
这是我的vercel.json
{
"redirects": [
{
"source": "/_next",
"destination": "/404",
"statusCode": 404
},
{
"source": "/_next/static",
"destination": "/404",
"statusCode": 404
},
{
"source": "/_next/static/([A-z0-9_-]{21})",
"destination": "/404",
"statusCode": 404
},
{
"source": "/_next/static/chunks",
"destination": "/404",
"statusCode": 404
},
{
"source": "/_next/static/css",
"destination": "/404",
"statusCode": 404
},
{
"source": "/_next/static/images",
"destination": "/404",
"statusCode": 404
}
]
}
您可以在 Vercel Dashboard > 您的项目部署 > 源 > 输出中检查,如果您有其他目录要隐藏。
使用此配置部署站点后,当您访问该站点时将呈现 404 页面 URL。