ASP.NET MVC6:以编程方式设置webroot
| 
                         
 在ASP.NET MVC6中,默认情况下从wwwroot提供静态文件. 
  
  
目录wwwroot由关键webroot在project.json中定义(如此处所述:http://docs.asp.net/en/latest/fundamentals/static-files.html) 我想知道是否可以在运行时(启动时)以编程方式设置此webroot. 我想在运行时切换webroot,具体取决于在调试或生产模式下运行.由于我的静态assests(JS,CSS …)是在构建时处理的(连接,缩小……),我认为这是拥有源资源的目录和包含优化资产的目录的最佳方法(构建)输出). 在运行时,我想在生产模式下运行时将webroot指向优化的资产. 有没有人想出如何以编程方式设置webroot? 更新2015-11-19:在我的场景中,我只想使用静态文件.正如答案中所指出的,当使用带有Razor的html的服务器端渲染时,可以使用TagHelpers(http://blogs.msdn.com/b/cdndevs/archive/2015/08/06/a-complete-guide-to-the-mvc-6-tag-helpers.aspx)实现不同资产之间的切换. 解决方法
 我会采取不同的方式. 
  
  
        首先,当您使用F5应用程序时,它会自动将ASPNET_ENV设置为Development.在Razor中,您可以使用TagHelpers切换您的资源,如下所示: <environment names="Development">            
    <link rel="stylesheet" href="~/css/site1.css" />
    <link rel="stylesheet" href="~/css/site2.css" />
</environment>
<environment names="Staging,Production">
    <link rel="stylesheet" href="~/css/site.min.css" asp-file-version="true"/>
</environment> 
 这将允许您根据您实际运行的环境更改资源/ javascript甚至HTML. 唯一缺少的是在Staging and Production机器上设置ASPNET_ENV,它将自动被选中.无需动态更改wwwroot. 如果你真的想坚持改变wwwroot,对我来说这将是一个部署任务,而不是在运行时步骤. 否则,您已链接的静态文件上的check the documentation.它提供了有关如何在运行时链接不同文件夹的代码示例.也许您缺少的是对IHostingEnvironment的依赖,它会为您提供环境变量来决定您所处的环境. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!  | 
                  
- asp.net – 如何确定IUSR密码
 - ASP.NET:如何更改每行中使用的itemTemplate?
 - 传统asp.net小心 async/await坑
 - .net – 我应该如何设计一个允许IoC的类库,但不依赖于特定的
 - ASP.NET WebApi:(405)方法不允许
 - asp.net – 动态下载链接算法
 - 没有更新过期的ASP.NET Cookie更新值?
 - asp.net-mvc-3 – 将Mocked HttpPostedFileBase作为MVC 3控
 - asp.net – 处理内容管理系统中的图像和文件附件
 - asp.net-mvc-routing – ASP.NET 4 MVC Web API:复杂路由的
 
- 在ASP.NET或ASP.NET MVC中生成管理界面
 - asp.net – 在Visual Studio 2012中创建控制器时
 - asp.net – ReportViewer阻止其他功能,直到报告查
 - asp.net-mvc – MVC“添加控制器”是“无法检索元
 - asp.net-mvc – 不同语言的MVC数据注释?
 - asp-classic – 如何在Classic ASP中延迟响应
 - Razor Page Library:开发独立通用RPL(内嵌wwwr
 - 上传经典ASP中的图像和目录中找不到的图像
 - asp.net-mvc-4 – ASP.NET MVC 4移动功能
 - asp.net-core – .net核心自定义身份验证中的Use
 
