asp.net-core – 将绝对文件路径转换为相对路径
我正在尝试从我的ASP.NET核心应用程序的wwwroot文件夹中的images文件夹中提供文件,我已经在Startup类中启用了静态文件访问.
HostingEnvironment服务为我提供了一个WebRootPath属性,它为我提供了wwwroot文件夹的绝对路径,但使用此路径在浏览器的控制台中给出了“不允许加载本地资源”错误. 如果我使用localhost从我的浏览器访问该文件,我可以获取图像文件的相对路径,因此没有关于授权的问题. 我现在需要的是能够将该绝对路径转换为我的Web服务器的相对路径. 解决方法
鉴于您遇到的错误,在我看来,您正在尝试在视图中使用_env.WebRootPath“/images/textfile.txt”,例如作为href属性.
>这样做最终会在浏览器中尝试从您的页面请求一个类似于file:/// C:/Users/PathToYourSite/wwwroot/images/textfile.txt的网址,该网址以您遇到的错误结束.您可以阅读有关该on this answer的更多信息,但在moder Chrome等浏览器中,默认情况下会禁用从http协议到文件协议的请求. 因此,当您希望将文件内容作为服务器端逻辑的一部分读取时,应使用IHostingEnvironment方法,以便您可以对它们执行某些操作. 但是,如果您需要在wwwroot中生成指向文件的链接并在视图中使用它们,那么您有以下几种选择: >使用IUrlHelper将公共URL解析为wwwroot中的文件,其中“?/”是wwwroot文件夹.然后在需要时使用它,就像一个href: @Url.Content("~/images/textfile.txt") >使用以“?/”开头的href属性直接在剃刀视图中创建锚点. (你甚至在那里获得intellisense) <a href="~/images/textfile.txt">Get file from wwwroot</a> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – 如何处理从“DBNull”类型到“String”类型的转
- asp.net-core-mvc – 如何在Asp.Net Core中自定义Developer
- asp.net – 带有WebAPI的Fiddler表现得很不稳定
- asp.net – HttpError iis config在添加默认路径时抛出异常
- asp.net – 将url参数添加到asp主题文件夹中的css文件中
- JS_正则表达式_使用字符串创建的正则表达式_反斜杠也需要添
- asp.net-mvc-4 – 如何在MVC4中呈现远程ReportViewer aspx页
- asp.net-mvc-4 – TempData不适用于MVC4中的第二个请求
- asp.net-mvc – 设置MVC 3 rc1 Razor cshtml文件构建动作编
- asp.net – 如何解码RDP服务器的远程资源URL(webfeed.aspx)