我的本地化问题一直存在。尝试了在线提供的各种解决方案,但没有人回答我的问题。
问题是我的本地化(ViewLocalization)没有在生产服务器上启动时加载。当我点击F5时,同一页面将重新加载Localization。
在我的开发机器上,当我在本地测试时,一切正常。有了这台机器,我推送到VSTS(git)并触发我的Azure,它构建和部署应用程序。
可能的原因:
Startup.cs有问题?看起来不错我猜:
public Startup(IHostingEnvironment env)
{
// code omitted
}
public IConfigurationRoot Configuration { get; }
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc(config =>
{
config.ModelBinderProviders.Insert(0, new ScrubbingModelBinderProvider());
}).AddViewLocalization(LanguageViewLocationExpanderFormat.Suffix).AddDataAnnotationsLocalization(); ;
services.Configure<RequestLocalizationOptions>(opts =>
{
var supportedCultures = new[] {
new CultureInfo("fr-FR"),
new CultureInfo("nl-NL")
};
opts.DefaultRequestCulture = new RequestCulture("nl-NL");
opts.FallBackToParentCultures = false;
opts.FallBackToParentUICultures = false;
opts.SupportedCultures = supportedCultures;
opts.SupportedUICultures = supportedCultures;
opts.RequestCultureProviders = new List<IRequestCultureProvider> {
new CookieRequestCultureProvider { CookieName = "_cultureFrigroAircoWebApp" },
new AcceptLanguageHeaderRequestCultureProvider { } };
});
services.AddLocalization(options => options.ResourcesPath = "Resources");
// Add application services.
// Services omitted
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
loggerFactory.AddConsole(Configuration.GetSection("Logging"));
loggerFactory.AddDebug();
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
app.UseDatabaseErrorPage();
app.UseBrowserLink();
}
else
{
app.UseExceptionHandler("/Shared/Error");
}
var options = app.ApplicationServices.GetService<IOptions<RequestLocalizationOptions>>();
app.UseRequestLocalization(options.Value);
app.UseIdentity();
app.UseSession();
app.UseStaticFiles();
// routes omitted
}
Viewlocalizer未在启动时注入?似乎无法理解为什么它不起作用...我在_ViewImports.cshtml中使用“@inject IViewLocalizer Localizer”。
首次加载页面时未设置Cookie?我不认为这是这个问题。因为当同一网络上的某个人尝试使用webapp时,它可以正常运行(当有人尝试过之前)
我的web.config:
<globalization culture="auto:nl-NL" uiCulture="auto:nl-NL" enableClientBasedCulture="false" />
我使用.NET Core:
"sdk": {
"version": "1.0.0-preview2-003131"
}
有谁知道我哪里出错了?或者有些想法正确的方向?
谢谢您的时间!
塞缪尔