開啓靜態網頁
Startup.Configure:
app.UseStaticFiles();
設置主頁
Startup.Configure:
DefaultFilesOptions defaultFilesOptions = new DefaultFilesOptions();
defaultFilesOptions.DefaultFileNames.Clear();
defaultFilesOptions.DefaultFileNames.Add("index.html");
app.UseDefaultFiles(defaultFilesOptions);
重要提示,代碼是有順序的:
UseDefaultFiles-UseStaticFiles-UseMvc
彙總:
Startup.Configure:
DefaultFilesOptions defaultFilesOptions = new DefaultFilesOptions();
defaultFilesOptions.DefaultFileNames.Clear();
defaultFilesOptions.DefaultFileNames.Add("index.html");
app.UseDefaultFiles(defaultFilesOptions);
app.UseStaticFiles();
app.UseMvc();
跨域
Startup.Configure:(core 3.0 ConfigureServices中需包含services.AddControllers();)
app.UseCors(corsPolicyBuilder => corsPolicyBuilder.AllowAnyMethod().AllowAnyOrigin());
Json保持原始大小寫
Startup.ConfigureServices:
2.0:
<PackageReference Include="Newtonsoft.Json" Version="12.0.2" />
services.AddMvc().AddJsonOptions(options => options.SerializerSettings.ContractResolver = new Newtonsoft.Json.Serialization.DefaultContractResolver());
3.0 方案1修改原生方法:
services.AddControllers().AddJsonOptions(options =>
{
options.JsonSerializerOptions.DictionaryKeyPolicy = null;
options.JsonSerializerOptions.PropertyNamingPolicy = null;
});
3.0 方案2用NewtonsoftJson替換原生方法:
<PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="3.0.0" />
services.AddControllers()
//原生Json服務中文、變量、註釋支持差,這裏切換爲Newtonsoft提供的Json服務,必須引用Microsoft.AspNetCore.Mvc.NewtonsoftJson,引用Newtonsoft.Json此處無效
.AddNewtonsoftJson(options =>
{
//保持Json屬性/變量大小寫
options.SerializerSettings.ContractResolver = new Newtonsoft.Json.Serialization.DefaultContractResolver();
// 忽略循環引用
options.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore;
// 設置時間格式
options.SerializerSettings.DateFormatString = "yyyy-MM-dd HH:mm:ss";
// 如字段爲null值,該字段不會返回到前端
// options.SerializerSettings.NullValueHandling = NullValueHandling.Ignore;
});
添加MIME
Startup.Configure:
var provider = new FileExtensionContentTypeProvider();
provider.Mappings[".osm"] = "application/octet-stream";
app.UseStaticFiles(new StaticFileOptions()
{
ContentTypeProvider = provider
});