网站能正常访问,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();
}
会不会是大小写的问题?linux是区分大小写的
添加UseStaticFiles 中间件后默认的文件名称没做修改。浏览器访问路径:http://www.11sx.pw:81/lib/bootstrap/css/bootstrap.css
看的话都是正常的 没大小写问题。
@Space.MK: 建议将 app.UseStaticFiles();
放到 app.UseIdentityServer();
之前
@dudu: 测试还是404,
@dudu: 之前有编译 https://github.com/zkweb-framework/zkweb.system.drawing
不知道是否影响到环境
@Space.MK: 在 linux 服务器上的发布文件夹中运行 tree
命令看文件夹是否正常
@dudu:
@Space.MK: 在你本机可以正常访问?
@dudu: 本地使用dotnet 命令 运行能正常访问
@Space.MK: 你是怎么发布到 linux 服务器上的?
@dudu: 使用xshell5 中的 xftp5 上传过去的
@dudu: 找到问题了,是因为我启动的时候没在项目文件夹中启动,我之前是在Linux主目录启动的项目。@dudu 感谢您的耐心回答
@Space.MK: 要先在本机运行 dotnet publish -c Release -r linux-x64
进行发布,将发布文件夹中的文件上传到服务器
@MPotato: 谢谢
首先 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 = ""
}
);
}
#if DEBUG
app.UseStaticFiles();
#else
app.UseStaticFiles(new StaticFileOptions()
{
FileProvider = new Microsoft.Extensions.FileProviders.PhysicalFileProvider($"{System.AppDomain.CurrentDomain.BaseDirectory}/wwwroot"),
RequestPath = string.Empty,
ServeUnknownFileTypes = true,
});
#endif