Asp.net Core 1.0 VS2015 IISExpress 更改应用程序 URL:导致 .css 404。
Asp.net Core 1.0 VS2015 IISExpress 更改应用程序 URL:导致 .css 404。
在更改VS2015中Web服务器设置应用程序URL端口号后,出现.css(以及其他)404错误。
我从项目模板中创建了一个空的Asp.net Core 1.0 MVC 6网页项目,添加了一个控制器,并添加了一些绑定,以便我可以在我的移动浏览器上访问它,按下F5一切正常。
我决定要一个完整的网页,在一些研究之后,我认为只需删除第一个网站并重新创建一个完整的(非空白)网站会更容易。我想在我的解决方案中保持相同的项目名称。这个应用程序可以正常显示默认模板中的图片和轮播图。我添加了我的控制器,也可以正常工作。
我更改了Web服务器设置应用程序URL的端口号,因为我希望我的移动应用程序使用原始的开发端口。不太好,css和图片文件夹中的内容出现404错误。
我尝试清除浏览器缓存,重新构建Web项目,重新启动VS,关闭Microsoft.VsHub.Server.HttpHostx64.[exe|com]。
这个SO帖子建议进行一些acl更改。我尝试了这些。
netsh http delete urlacl url=http://localhost:60262/ netsh http add urlacl url=http://*:60262/ user=everyone
这是我的applicationhost.config文件(期望的端口号是60262,之前是61044):
问题原因:由于在startup.cs文件中更改了静态文件的配置,将app.UseStaticFiles()改为了app.UseFileServer(),可能导致了文件路径的变化,从而导致了.css文件无法找到的404错误。
解决方法:将代码中的配置改回到初始状态,即将app.UseFileServer()改为app.UseStaticFiles()。
我又是Donkey,我不知道为什么初始的配置居然可以正常工作,这让我非常好奇。在项目创建时,使用了VS自动分配的默认端口,并在startup.cs文件中做了以下配置:
// app.UseStaticFiles(); app.UseStaticFiles(new StaticFileOptions() { FileProvider = new PhysicalFileProvider(@"C:\Images"), RequestPath = new PathString("/StaticImageFiles") });
后来,我将这段代码修改为了以下内容:
app.UseStaticFiles(); app.UseFileServer(new FileServerOptions() { FileProvider = new PhysicalFileProvider(@"C:\Images"), RequestPath = new PathString("/StaticImageFiles"), // EnableDirectoryBrowsing = true });
结果问题解决了。我尝试了多次更改app URL,没有出现任何问题。但是,我并不清楚为什么初始的配置可以正常工作,而修改后的配置出现了问题。通过将代码改回初始状态,即将app.UseFileServer()改为app.UseStaticFiles(),问题得以解决。