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 – 如何在backbone.js中保存模型集合?
- 如何在ASP.NET自定义控件中持久保存List属性?
- asp.net-core – ASP.NET Core 1.0 SynchronizationContext
- asp.net – 如何测试开发机器上的子域? abc.localhost
- asp.net-mvc – 使用类似MvcContrib Grid的东西在代码可读性
- asp.net-mvc-3 – 使用jQuery验证货币字段的客户端验证
- asp.net – 访问视图Mvc.net中的路由值
- 什么是文字控制用于和asp.net的标签控制有什么区别?
- asp.net-mvc – 为什么Asp.NET MVC通过Asp.NET Web窗体
- asp.net – 什么是嵌入网站的好搜索引擎
- asp.net-core – 如何使用.net Core设置离线开发
- asp.net-mvc – “GenerateResource”任务失败,意
- asp.net-mvc – 在.NET MVC上启用Http PUT请求
- asp.net – Gridview中的多个评估字段的最佳技术
- asp.net-mvc – 防止没有确认电子邮件的用户登录
- ASP.NET自定义控件 – 什么是最好的方式来包括嵌
- asp.net – 找不到指定文化或中性文化的任何资源
- 过滤ASP.NET Core API中的属性
- asp.net – 使用OAuth在Web API中进行身份验证
- ASP.NET MVC 3中建立的[Email]属性是不是?
