Next.js 如何在部署到Vercel的下一个js中禁用目录列表
我已经部署了内置于Next.js 如何在部署到Vercel的下一个js中禁用目录列表,next.js,vercel,Next.js,Vercel,我已经部署了内置于Next.js的网站,显然,当你部署下一个js应用程序时,你可以找到我感觉不太好的所有静态文件和资源的目录 目录是这样生成的:mydomain.com/\u next/static在我的例子中https://www.ovanya.com/_next/static/ 这是目录: 下一个问题是: 为了防止显示目录列表页面,请添加一个索引文件,如index.html,它将在访问目录路径时显示该文件 但我真的不明白应该将index.html文件添加到哪个目录?那么我应该把index.
Next.js
的网站,显然,当你部署下一个js应用程序时,你可以找到我感觉不太好的所有静态文件和资源的目录
目录是这样生成的:mydomain.com/\u next/static
在我的例子中https://www.ovanya.com/_next/static/
这是目录:
下一个问题是:
为了防止显示目录列表页面,请添加一个索引文件,如index.html,它将在访问目录路径时显示该文件
但我真的不明白应该将index.html文件添加到哪个目录?那么我应该把index.html放在哪里呢
还有一个问题:如果我就这样离开这个会不会很糟糕?它有任何风险或类似的东西吗?应该需要递归地将
index.html
添加到\u next
和每个子目录中。您可以通过编写一个构建后脚本来实现这一点
但是,这样做没有任何好处。没有暴露此目录或其中的文件的风险
\u next/static
只是编译的客户端资产,它必须是公共的。我也在寻找解决方案,并尝试创建自定义编译后脚本,但没有成功。我的最终解决方案是在根项目目录中的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
}
]
}
如果要隐藏其他目录,可以在>项目部署>源>输出中进行检查
使用此配置部署站点后,当您访问该URL时,将呈现404页面