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

// Classic ASP.NETpublic 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 + "\n" + 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);}}
}

ASPNET Core api 中获取应用程序物理路径wwwroot相关推荐

  1. html 读取物理路径,.Net Core api 中获取应用程序物理路径wwwroot

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

  2. Net Core api 中获取应用程序物理路径wwwroot

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

  3. 如何在.NET控制台应用程序中获取应用程序的路径?

    如何在控制台应用程序中找到应用程序的路径? 在Windows Forms中 ,我可以使用Application.StartupPath查找当前路径,但这似乎在控制台应用程序中不可用. #1楼 上面的答 ...

  4. 定时发布任务,在global.asax中获取文件的物理路径的方法

    如果要把一个相对路径或者虚拟路径映射道服务器的物理路径,通常会使用Server.MapPath()函数,比如将根目录下的html目录映射为物理路径:Server.MapPath("html& ...

  5. 我的第一个翻译作品 - Acrobat core API中的两章

    第2章 理解插件 这一章提供一个总览,插件如何被载入,被初始化,被卸载,以及其它与插件和PDF库应用相关的概念.推荐你在开始开发插件或PDF库应用之前阅读本章节. 第1节 关于插件初始化 这部分描述A ...

  6. C# WinForm中获取当前程序运行目录的方法

    C# WinForm中获取当前程序运行目录的方法: "AppDomain.CurrentDomain.BaseDirectory":获取当前应用程序所在目录的路径,最后包含&quo ...

  7. android中获取应用程序(包)的信息,Android中获取应用程序(包)的信息PackageManager的使用(一).doc...

    Android中获取应用程序(包)的信息PackageManager的使用(一) 本节内容是如何获取Android系统中应用程序的信息,主要包括packagename.label.icon.占用大小等 ...

  8. python 获取参数模块_Python中获取启动程序时后面跟的参数的方法(optparse模块)【冰斌棒】...

    Python中获取启动程序时后面跟的参数的方法(optparse模块)[冰斌棒] 3年前 (2018-01-29)    作者:冰斌棒    分类:冰斌棒18程序计划    阅读次数:871 评论(0 ...

  9. 在Java代码(非JSP及Action,Servlet,Controller)中获得WebRoot的物理路径

    在开发Web方面的应用时, 常常须要获取 server中当前WebRoot的物理路径; 假设是Servlet , Action , Controller, 或则Filter , Listener , ...

最新文章

  1. 第八讲 一阶常系数线性ODE(续)
  2. 契约式设计(DbC)感想(二)
  3. 简单几行代码带你快速了解淘宝双十一的强大技术支撑点Sentinel+Nacos
  4. c++中的引用和指针
  5. Windows+VS2015编译caffe+py-faster-rcnn
  6. iOS应用内购买(In App Purchase)总结
  7. exchange邮件服务器_基于Spring Boot快速实现发送邮件功能
  8. 瑞丽,边陲的旖旎风情
  9. JavaScript得到鼠标指针相对于浏览器页面(或客户区)的水平坐标(兼容ie,ff)...
  10. 百度回应“抄袭天猫精灵”;ofo 押金退完需 12 年;VS Code 1.36 发布 | 极客头条...
  11. UVA10946 You want what filled?【DFS】
  12. linux中crontab的用法
  13. 顺序堆栈实现数制转换以十进制数转化为八进制数为例
  14. Win10 系统菜单和应用程序菜单显示字体模糊
  15. MyEclipse 安装教程
  16. [Go] 理解计算机负数的表示以及整数范围
  17. mysql特殊符号无法储存_解决MYSQL数据库无法保存emoji表情及特殊符号问题
  18. k8s学习笔记——k8s pv rbd手动挂载
  19. 安卓虚拟键盘_Android自动化测试13--安卓仿真器/模拟器
  20. 计算税率c语言编写程序,C语言编写一个计算个人所得税的程序,要求输入收入金额,能够输...

热门文章

  1. 《天下贰》新版本“逐鹿中原”今日公测 开启PK新模式
  2. 应该如何正确对待员工的抱怨
  3. Bootstrap Table固定列及IE11兼容性问题解决
  4. m4a音频怎么转换成mp3?
  5. 解决Windows丢失api-ms-win-core-file-l2-1-0.dll文件
  6. piwik.php是什么,Piwik是什么?Piwik有哪些优点?
  7. 汉诺塔递归算法理解及实现
  8. 《洛克菲勒留给儿子的38封信》读后感
  9. 微分先行PID控制算法
  10. uni-app(踩坑第一篇):轮播图swiper改变指示点样式(已解决)