ASP.NET Core 8.0本地化在本地正常但Docker容器中失效的问题求助
ASP.NET Core 8.0本地化在本地正常但Docker容器中失效的问题求助
我最近在开发一个带本地化支持的ASP.NET Core 8.0项目,在Windows本地用dotnet run运行时一切正常,所有翻译后的字符串都能正确显示。但把项目打包成Linux镜像、用Docker运行容器后,本地化功能直接失效了——本该返回对应语言的翻译文本,结果现在直接显示资源键(比如显示ITEM_NOT_FOUND而不是对应的本地化内容Items with id {0} is not found!)。
我在Program.cs里的本地化配置代码如下:
services.AddLocalization(options => options.ResourcesPath = "Resources"); services.Configure<RequestLocalizationOptions>(options => { var supportedCultures = new List<CultureInfo> { new("fr"), new("fr-FR"), new("en"), new("en-US") }; options.DefaultRequestCulture = new RequestCulture("en"); options.SupportedCultures = supportedCultures; options.SupportedUICultures = supportedCultures; });
我自己怀疑问题出在Windows开发机和Linux容器的环境差异上,比如区域性回退行为的不同,或者是Linux容器里缺少了全球化相关的数据?
我已经尝试过调整中间件顺序了——按照相关指引把UseRequestLocalization放在MapControllers和MapHealthChecks("/health")之前,但好像没起作用。
有没有朋友遇到过ASP.NET Core在Docker里运行时的这类本地化问题?如果有的话,是怎么解决的?
内容来源于stack exchange
相关产品推荐
相关产品推荐

