zoukankan      html  css  js  c++  java
  • [转] ASPNET Core 中获取应用程序物理路径

    如果要得到传统的ASP.Net应用程序中的相对路径或虚拟路径对应的服务器物理路径,只需要使用使用Server.MapPath()方法来取得Asp.Net根目录的物理路径,如下所示:

    // Classic ASP.NET
    
    public class HomeController : Controller
    {
        public ActionResult Index()
        {
            string physicalWebRootPath = Server.MapPath("~/");
            
            return Content(physicalWebRootPath);
        }
    }

    但是在ASPNET Core中不存在Server.MapPath()方法,Controller基类也没有Server属性。

    在Asp.Net Core中取得物理路径:

    从ASP.NET Core RC2开始,可以通过注入 IHostingEnvironment 服务对象来取得Web根目录和内容根目录的物理路径,如下所示:

    using Microsoft.AspNetCore.Hosting;
    using Microsoft.AspNetCore.Mvc;
    
    namespace AspNetCorePathMapping
    {
        public class HomeController : Controller
        {
            private readonly IHostingEnvironment _hostingEnvironment;
    
            public HomeController(IHostingEnvironment hostingEnvironment)
            {
                _hostingEnvironment = hostingEnvironment;
            }
    
            public ActionResult Index()
            {
                string webRootPath = _hostingEnvironment.WebRootPath;
                string contentRootPath = _hostingEnvironment.ContentRootPath;
    
                return Content(webRootPath + "
    " + contentRootPath);
            }
        }
    }

    我在 ~/Code/AspNetCorePathMapping 目录下创建了一个示例 Asp.Net Core 应用程序,当我运行时,控制器将返回以下两个路径:

    这里要注意区分Web根目录 和 内容根目录的区别:

    Web根目录是指提供静态内容的根目录,即asp.net core应用程序根目录下的wwwroot目录

    内容根目录是指应用程序的根目录,即asp.net core应用的应用程序根目录

    ASP.NET Core RC1

    在ASP.NET Core RC2之前 (就是ASP.NET Core RC1或更低版本),通过 IApplicationEnvironment.ApplicationBasePath 来获取 Asp.Net Core应用程序的根目录(物理路径) :

    using Microsoft.AspNet.Mvc;
    using Microsoft.Extensions.PlatformAbstractions;
    
    namespace AspNetCorePathMapping
    {
        public class HomeController : Controller
        {
            private readonly IApplicationEnvironment _appEnvironment;
    
            public HomeController(IApplicationEnvironment appEnvironment)
            {
                _appEnvironment = appEnvironment;
            }
    
            public ActionResult Index()
            {
                return Content(_appEnvironment.ApplicationBasePath);
            }
        }
    }

    原文地址(英文): https://blog.mariusschulz.com/2016/05/22/getting-the-web-root-path-and-the-content-root-path-in-asp-net-core

  • 相关阅读:
    fpga配置方式 .jic固化为ps模式
    fpga新建nios
    四轴飞行器飞行原理与双闭环PID控制
    fpga为什么要用nios 开发
    error A space is required after ',' comma-spacing
    vuex : Newline required at end of file but not found eol-last
    vue -Missing space before value for key 'path'vue.js解决空格报错
    visual studio 自动补全功能 以及代码没有颜色
    hadoop 伪分布模式环境搭建
    django框架-DRF工程之认证功能
  • 原文地址:https://www.cnblogs.com/staneee/p/6843289.html
Copyright © 2011-2022 走看看