asp.net-mvc – 作为静态文件的根目录的项目子目录
我正在使用ASP.NET MVC,我正在使用Visual Studio 2013向导创建一个Web应用程序.它创建几个文件夹从静态文件的服务:内容,脚本等
其他语言(例如TurboGears)的框架仅针对静态内容具有明确的目录,消除了为页面的源代码提供服务的风险,而不是处理这是PHP站点的典型配置错误. ASP.NET很高兴在应用程序的根目录中提供任何东西,例如http:// localhost:1740 / Project_Readme.html只要它有正确的扩展名.只有Views文件夹受到Web.config的保护. 如何将应用程序配置为使用另一个目录,而不是项目的静态文件的根目录.例如.如果文件favicon.ico被放入内容的子目录中,那么它应该可以访问http:// localhost:1740 / favicon.ico,但是除了控制器返回之外,没有任何内容目录. 这个目录中不应该执行任何操作,也就是说,如果* .cshtml文件放在这个目录下,则文件的内容(源代码)应该以文本/普通方式传送. 最终应用程序将在Linux上使用mod_mono运行. 解决方法
更新:
本, 所提出的解决方案仅适用于Owin.要使其在MVC应用程序中工作,您只需使用asp.net MVC 6(部分asp.net core或asp.net 5).但是,使用Web API,您也可以使用旧版本.要设置应用程序,请使用以下步骤: >使用visual studio模板创建一个空项目(不要选择Web API或MVC) Microsoft.AspNet.WebApi Microsoft.AspNet.WebApi.Owin Microsoft.Owin.Host.SystemWeb Microsoft.Owin.StaticFiles [assembly:OwinStartup(typeof(启动))] >将以下代码添加到Stratup.cs类中 public void Configuration(IAppBuilder app) { var config = new HttpConfiguration(); config.MapHttpAttributeRoutes(); config.Routes.MapHttpRoute( name: "DefaultApi",routeTemplate: "api/{controller}/{id}",defaults: new {id = RouteParameter.Optional} ); //Configure the file/ static file serving middleware var physicalFileSystem = new PhysicalFileSystem(@".client"); var fileServerOptions = new FileServerOptions { EnableDefaultFiles = true,RequestPath = PathString.Empty,FileSystem = physicalFileSystem }; fileServerOptions.DefaultFilesOptions.DefaultFileNames = new[] {"index.html"}; fileServerOptions.StaticFileOptions.ServeUnknownFileTypes = true; fileServerOptions.StaticFileOptions.FileSystem = physicalFileSystem; app.UseFileServer(fileServerOptions); app.UseWebApi(config); } 这应该是魔术.现在您可以在IIS中托管该应用程序. IIS将仅从客户端文件夹提供静态资产.添加服务器文件夹并添加控制器. Microsoft.Owin.Host.SystemWeb是有助于在IIS中托管Owin应用程序.文件服务选项帮助IIS仅从客户端文件夹提供静态文件. 请让我知道,如果你有任何问题. 根据您的问题,您希望实现的项目结构应如下所示. 基本上你将只有两个文件夹,客户端和服务器.静态文件仅从客户端文件夹提供.服务器文件夹不可访问.如果这是您所需要的,那么可以通过使用静态文件服务中间件的Owin Self Host轻松实现. 自主主机对IIS有任何依赖.但是,如果您计划在Linux上托管此应用程序,则可以使用Asp.NET CORE 1.0.之后如果您决定在Windows中的IIS上托管应用程序,可以通过添加Microsot.Owin.Host.SystemWeb nuget软件包轻松实现. 有关这个话题的很好的博客文章.这是其中之一的link.这是在Asp.NET Core中实现相同的link. 我希望这能解决您的问题,如果您有任何问题,请通知我. 谢谢,索玛. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – 在Azure中预编译ASP.NET MVC项目(不与Web部
- asp.net-mvc – 即使我设置CustomError =“On”,自定义错误
- asp.net-mvc – ASP.NET MVC不提供默认文档
- asp.net – Reference.svcmap:无法加载文件或程序集Micros
- asp.net-mvc – 使用cookie在ASP MVC中存储会话
- ASP.NET客户端与服务器视图呈现
- ASP.NET Web API操作使用接口而不是具体类
- asp.net-mvc – 格式化日期只有月份和年份 – “MMM-yyyy”
- ASP.NET MVC全能路由
- asp.net – Page.PreLoad事件未出现在visual studio中