我非常喜欢新的asp.net ( wwwroot 5\core 1.0) web应用程序的方法,将asp.net文件夹作为根目录,并且只提供其中的静态文件。
有没有可能通过路由或其他配置,让Web4.5项目中的wwwroot文件夹以类似的方式运行,这样静态文件只在其中提供服务,并且它是静态文件的asp.net应用程序的“根”?
(我问这个问题的部分动机是,我在VS2015的asp.net 5项目中托管了一个angular应用程序,但我需要将其移动到asp.net 4.5项目中,但希望将现有结构保留在磁盘上)
尝试使用OWIN
我尝试过使用一个空的ASP.NET 4.5 web应用程序项目和OWIN。所以我的文件夹结构有我的angular应用程序,在项目文件夹的wwwroot文件夹中有一个主要的index.html文件。项目根目录中没有HTML文件。
我已经通过nuget和下面的启动文件添加了OWIN:
[assembly: OwinStartup(typeof(MyApp.UI.Startup))]
namespace MyApp.UI
{
public class Startup
{
public void Configuration(IAppBuilder app)
{
string root = AppDomain.CurrentDomain.BaseDirectory;
var physicalFileSystem = new PhysicalFileSystem(Path.Combine(root, "wwwroot"));
var options = new FileServerOptions
{
EnableDefaultFiles = true,
FileSystem = physicalFileSystem
};
options.StaticFileOptions.FileSystem = physicalFileSystem;
options.StaticFileOptions.ServeUnknownFileTypes = false;
options.DefaultFilesOptions.DefaultFileNames = new[] {"index.html"};
app.UseFileServer(options);
}
}
}
但是这失败了-当我运行它时,我的index.html文件的源代码确实加载了,但它引用的所有css、js等文件都失败了,并显示了404。更糟糕的是,如果我将gulpfile.js附加到根url上,它会从项目文件夹的根目录加载我的gulp文件。这正是我想要避免的事情。
有什么想法吗?
https://stackoverflow.com/questions/36294188
复制相似问题