【问题标题】:How is config.json found by ASP.NET 5ASP.NET 5 如何找到 config.json
【发布时间】:2016-07-21 21:25:29
【问题描述】:

大概 ASP.NET 5 网站需要运行的所有内容都放在 wwwroot 下。然而,当我在站点运行时查看此目录时,我看不到 config.json。那么问题来了,如果我的网站启动代码不在 wwwroot 下,它如何找到 config.json?

一个相关的问题,如果我想创建自己的配置文件(因为 config.json 只处理简单的名称/值对),我会将它放在我的项目中的 config.json 旁边还是 wwwroot 下以便能够在运行时读取内容?

【问题讨论】:

    标签: asp.net asp.net-mvc asp.net-core


    【解决方案1】:

    wwwroot 文件夹中的内容代表您的站点可通过 HTTP 访问的所有内容。你可以在运行时访问你的配置文件,但你不能为它们发出网络请求(因为它们不在 wwwroot 中)。

    ASP.NET 在 Startup 类中找到根 config.json:

    public Startup(IHostingEnvironment env)
        {
            // Setup configuration sources.
            var configuration = new Configuration()
                .AddJsonFile("config.json")
                .AddJsonFile($"config.{env.EnvironmentName}.json", optional:   true);
    

    【讨论】:

    • 那么如果文件不在 wwwroot 下,如何在运行时访问它?我知道从 VS 运行时该文件可用。但是,如果我发布到 IIS 服务器 - 只有 wwwroot 下的内容才能运行,对吗?而如果config.json不在wwwroot下,那么发布的站点如何找到该文件呢?抱歉,对此还是有点困惑。
    • @KeithHill :wwwroot 下的东西用于提供静态文件,例如,如果你有任何 javascript 文件,那么当浏览器请求这些文件时,它们会从这里提供文件夹,但您不能直接从浏览器访问文件(例如:HomeController.cs、Startup.cs 和 config.json)。 Config.json 应该是服务端应用自己使用的,对终端客户端没有意义。
    • @KeithHill,我还在纠结这个问题,afaik 发布的网站从依赖注入中找到了文件 - docs.asp.net/en/latest/conceptual-overview/…(旁注:我认为他们对所有的.json 文件,其中一些之间的差异可能会令人困惑,但他们仍在努力,所以也许它会改进)。
    • @proggrock 如果您能在this 上帮助我,那将非常有帮助
    猜你喜欢
    • 1970-01-01
    • 2015-11-02
    • 2016-12-23
    • 2022-07-30
    • 2019-03-08
    • 1970-01-01
    • 2015-05-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多