asp.net core 2.1部署到Linux无法访问wwwroot文件夹中的资源

2019-01-02 22:26发布

网站能正常访问,css、js报404。
Startup配置如下:
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Home/Error");
}

        //
        app.UseIdentityServer();
        //添加静态资源访问
        app.UseStaticFiles();
        //添加mvc默认路由
        app.UseMvcWithDefaultRoute();
    }

2条回答
做自己的国王
2楼-- · 2019-01-02 23:21

会不会是大小写的问题?linux是区分大小写的

查看更多
甜甜的少女心
3楼-- · 2019-01-02 23:23

首先 publish,dotnet xxx.dll 要在 dll所在目录 着实不方便

我已经改成 配置的了

https://github.com/Microshaoft/MsSqlCodeDiffVersioning/blob/master/MsSqlCodeDiffVersioning/Startup.cs
https://github.com/Microshaoft/MsSqlCodeDiffVersioning/blob/master/MsSqlCodeDiffVersioning/wwwrootpaths.json

app.UseDefaultFiles
(
new DefaultFilesOptions()
{
DefaultFileNames =
{
"index.html"
}
}
);
//兼容 Linux/Windows wwwroot 路径配置
var wwwroot = GetExistsPaths
(
"wwwrootpaths.json"
, "wwwroot"
)
.FirstOrDefault();
if (wwwroot.IsNullOrEmptyOrWhiteSpace())
{
app.UseStaticFiles();
}
else
{
app
.UseStaticFiles
(
new StaticFileOptions()
{
FileProvider = new PhysicalFileProvider
(
wwwroot
)
, RequestPath = ""
}
);
}

查看更多
登录 后发表回答