ASP.NET Core 部署到CentOS下,语言资源只能加载默认的语言资源文件
版本:.net Core 2.1
在ASP.NET Core中做多语言网站,在windows不管是通过IIS部署,还是通过dotnet启动,语言切换都正常,可以要找要求加载不同的语言包,但是发布到Cent OS 7.5中,语言资源只加载默认的语言包.
我的具体实现方式如下:
在路由中添加本次要请求语言
在Controller中获取到当前要使用的语言,并保存到ViewData中.
设置当前区域,如果链接传入 zh-cn 当前区域就设置为中国
语言资源包

然后再程序中使用
获取响应的语言设置,Index_IMPLANT是资源文件的名称.
这种方式再windows下部署一切正常,但是在CentOS下部署,就只能加载默认的语言,也就是Language中的语言,不能根据设置的区域加载不同的语言了.
经过测试:经URL传入的语言能正常获取,CurrentUICulture和CurrentCulture 也能正常设置,区域也正确,就是找不到语言包.
发布后的目录

求教.
在ASP.NET Core中做多语言网站,在windows不管是通过IIS部署,还是通过dotnet启动,语言切换都正常,可以要找要求加载不同的语言包,但是发布到Cent OS 7.5中,语言资源只加载默认的语言包.
我的具体实现方式如下:
在路由中添加本次要请求语言
routes.MapRoute(
name: "UploadMvc",
template: "UploadMvc/{action}/{id?}",
defaults: new { controller = "UploadMvc", action = "UpdataFile" }
);
routes.MapRoute(
name: "default",
template: "{lang}/{controller}/{action}/{id?}",
defaults: new { lang = "zh-CN", controller = "Home", action = "Index" },
constraints: new { lang = "zh-cn|en-us|de-de|ko-kr|es-es|ja-jp" }
);
在Controller中获取到当前要使用的语言,并保存到ViewData中.
public override void OnActionExecuting(ActionExecutingContext context)
{
var routeData = context.RouteData;
var lang = "zh-cn";
if (routeData != null && routeData.Values != null)
{
var langObj = routeData.Values["lang"];
if (langObj != null)
{
lang = langObj.ToString().ToLower();
}
}
Language = lang;
ViewData["language"] = lang;
}
设置当前区域,如果链接传入 zh-cn 当前区域就设置为中国
Thread.CurrentThread.CurrentUICulture = new CultureInfo(ViewData["language"] as string);
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(ViewData["language"] as string);
语言资源包

然后再程序中使用
Language.Index_IMPLANT
获取响应的语言设置,Index_IMPLANT是资源文件的名称.
这种方式再windows下部署一切正常,但是在CentOS下部署,就只能加载默认的语言,也就是Language中的语言,不能根据设置的区域加载不同的语言了.
经过测试:经URL传入的语言能正常获取,CurrentUICulture和CurrentCulture 也能正常设置,区域也正确,就是找不到语言包.
发布后的目录

求教.
...全文
相关推荐
ASP.NET Core应用程序部署至生产环境中(CentOS7)
### ASP.NET Core应用程序部署至生产环境中(CentOS7)#### 环境说明与准备工作在部署ASP.NET Core应用程序到CentOS 7.2.1511的生产环境中,首先需要确保具备以下条件和环境
阿里云CentOs部署Asp.Net Core 详细步骤
"阿里云CentOS部署Asp.Net Core 详细步骤"本文将详细介绍如何在阿里云的 CentOS 操作系统上部署 Asp.Net Core 应用程序。
一篇Centos7下的asp.net core部署教程
本文是一篇详细的CentOS 7下ASP.NET Core部署教程,旨在帮助用户在Linux系统中避免常见的部署陷阱。文章首先介绍如何安全地安装.NET Core 3.1 SDK和运行时,包括获取密钥
Centos7+Docker+Jenkins+ASP.NET Core 2.0自动化发布与部署的实现
"本文主要介绍了如何在CentOS7环境下,结合Docker、Jenkins和ASP.NET Core 2.0实现自动化发布与部署的过程。作者在文章中提供了详细的步骤,包括安装Docker、配置Do
asp.net core应用docke部署到centos7的全过程
"该资源详细介绍了如何将ASP.NET Core应用程序使用Docker部署到CentOS 7的操作过程。"在本文中,我们将深入探讨如何在CentOS 7操作系统上通过Docker部署ASP.N


