背景
我正在使用dotnet core 5。我在wwwroot文件夹中有数百万个图像。我将wwwroot文件夹添加到 *.csproj的DefaultItemExcludes中
<DefaultItemExcludes>$(DefaultItemExcludes);
wwwroot\defectImage\**;
</DefaultItemExcludes>
它在开发中效果很好。
问题
我部署到Linux与挂载多个外部NAS到wwwroot文件夹,如下所示:
wwwroot\defectImage
|_projectA
|_projectB
|__20230301
|___0001.jpg
|___0002.jpg
|___0003.jpg
|___...
|__20230302
|__20230303
|__...
|_projectC
...
但在生产中,程序初始化非常慢(最少约20分钟)
我该怎么办?
我所尝试的
我尝试删除挂载文件夹,它初始化非常快(1分钟)。我确认性能问题是因为wwwroot中有太多图像。我还尝试在Google和stackOverflow上搜索该问题,但一无所获
代码用法:
当前端发送一个关于图片的http请求到我的控制器时,它在wwwRoot中找到了图片并返回。例如:
public IActionResult Get(string projectName, string dateTime, string
fileName){
// combine the parameter to generate img path
string imgPath = "wwwroot/...";
return File(imgPath, "image/bmp");
// or return PhysicalFile(imgPath, "image/jpg");
}
1条答案
按热度按时间nue99wik1#
我最终使用nginx来服务静态内容,比如图像。使用nginx的rewrite指令来最小化代码的修改。