- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当您部署 asp.net5/mvc6 应用程序时,会有 wwwroot 文件夹,其中包含 css、js、图像等 Web 资源,还有 approot 文件夹,其中包含包和源代码。例如,Microsoft.Framework.Configuration 命名空间中的类似乎必须能够从 approot 下面读取文件,因为那是 config.json 文件所在的位置。
我想知道的是,是否可以在approot中存储和读取我自己的自定义文件?如果是的话怎么办?
例如,我没有使用 Entity Framework ,所以我需要一个地方来放置 sql 安装和升级脚本,并且不希望将它们放在 wwwroot 下。我还有用于导航站点地图之类的自定义配置文件,如果可以将它们放在其他地方(例如 approot),我宁愿不将它们放在 wwwroot 之下。
我知道我可以使用 IHostingEnvironment env.MapPath("~/somefileinwwwrootfoilder.json") 访问 wwwroot 下面的文件
是否有类似的方法来访问approot下的文件?
最佳答案
接受的答案是正确的,但自从 ASP.NET Core 1.0 发布以来,一些事情发生了变化,所以我想我应该写一个新的清晰的东西。
我所做的是在我的项目中创建一个名为 AppData
的文件夹。您可以随意调用它。
注意:不在wwwroot
中,因为我们希望将此数据保密。
接下来,您可以使用 IHostingEnvironment
来访问文件夹路径。这个接口(interface)可以作为依赖项注入(inject)到某种帮助服务中,最终得到的结果是这样的:
public class AppDataHelper
{
private readonly IHostingEnvironment _hostingEnvironment;
private const string _appDataFolder = "AppData";
public AppDataHelper(IHostingEnvironment hostingEnvironment)
{
_hostingEnvironment = hostingEnvironment;
}
public async Task<string> ReadAllTextAsync(string relativePath)
{
var path = Path.Combine(_hostingEnvironment.ContentRootPath, _appDataFolder, relativePath);
using (var reader = File.OpenText(path))
{
return await reader.ReadToEndAsync();
}
}
}
此外,为了正确部署,我必须将 AppData
文件夹添加到 project 的
.publishOptions
include
列表中。 json
正如评论中提到的,要在 ASP.NET MVC Core 2 中正确部署 AppData
文件夹(使用 *.csproj
文件,而不是project.json
),语法如下:
<ItemGroup>
<None Include="AppData\*" CopyToPublishDirectory="PreserveNewest" />
</ItemGroup>
关于asp.net-core - 在 asp.net 5 中,是否可以在 approot 而不是 wwwroot 中存储和读取自定义文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31387483/
我有一个网络应用程序,可以接收用户上传的文件。这些文件存储在 Web 服务器的目录中。其他用户可以下载这些文件。我正在自定义此应用程序以在 Windows Azure 上进行迁移。在Windows A
我正在尝试使用 FileStream 打开一个文件(作为“内容”和“始终复制”选项包含在我的项目中)。我收到以下错误: ***Access to the path 'E:\approot\PdataP
我的 Azure Web 角色需要能够删除存储在 App_Data 子文件夹中的临时本地文件。我想在 Azure 提升的启动任务中使用 ICACLS 以允许 IIS 执行此操作,如下所示: ICACL
我的项目中有一个 xml 文件,该文件应该用于读取操作。当我在本地计算机上运行该项目时,它工作得很好,但是它抛出 System.UnauthorizedAccessException: Access
我在网上搜索了此内容,但找不到任何内容(以及一篇远程相关的帖子),所以我在这里。 我们在 IIS 6 中有多个使用表单例份验证的 ASP.NET 应用程序,每个应用程序都有专用路径。由于路径区分大小写
从 Azure 门户中重新启动 Windows Azure 辅助角色实例时,e:\approot 文件夹的内容是否会被删除?我有一个提升的启动任务,它在添加一些注册表设置之前检查此文件夹中是否存在文件
我发现approot和sitesroot用于: \Approot - The customer’s code, aspx pages, DLLs, etc. \Sitesroot\ – This is
需要一个像通知处理程序一样的全局snackbar,它可以从任何地方触发,而不仅仅是 react 组件。 我的想法是制作一个监听CustomEvent的组件,并在触发事件时仅显示snackbar。我制作
当您部署 asp.net5/mvc6 应用程序时,会有 wwwroot 文件夹,其中包含 css、js、图像等 Web 资源,还有 approot 文件夹,其中包含包和源代码。例如,Microsoft
我是一名优秀的程序员,十分优秀!