首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >vNext / .NET5 config.json

vNext / .NET5 config.json
EN

Stack Overflow用户
提问于 2015-10-15 14:49:20
回答 2查看 464关注 0票数 1

据我所想,现在倾向于使用config.json文件来存储应用程序的配置设置,这是很棒的。喜欢json格式,并发现它更容易阅读。

但是,在发布我的第一个vNext应用程序时,我注意到config.json文件似乎已发布到

approot/src/my_project/config.json

我的网站在一个叫做wwwroot的文件夹里

我的网站服务器有多个网站设置,每个网站过去都有自己的"app.config“文件,我可以将该文件放在网站目录中,设置特定于该网站的运行。但现在我有两个问题,

  1. config.json被填充到错误的目录中。
  2. 如果我将config.json文件放入wwwroot文件夹中,那么客户端可以通过浏览器访问它。这很危险。

如果是在www.root中,我是否必须设置我的web服务器来忽略对config.json的请求,还是我完全遗漏了什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-10-15 15:53:54

感谢梅森关于在你的网站服务器上构建vNext网站的回答,但这里还有另一个值得提及的选项,那就是为什么我要添加另一个答案。

如前所述,我的项目中有用于开发的config.json文件,为了获得我在Startup.cs文件中使用的文件

代码语言:javascript
复制
public Startup(IApplicationEnvironment appEnv)
{
    var builder = new ConfigurationBuilder(appEnv.ApplicationBasePath.)
        .AddJsonFile("config.json")
        .AddEnvironmentVariables();

    Configuration = builder.Build();
}

这包括发布时批准文件中的文件。将其包含在wwwroot中也不是一个选项。因此,使用文件结构,您将有一个文件夹,其中包含了a和wwwroot文件夹,我将代码更改为这个文件,它适用于开发和发布。

代码语言:javascript
复制
public Startup(IHostingEnvironment env)
{
    // configuration is in the folder above the wwwroot
    var builder = new ConfigurationBuilder(env.MapPath("..\\"))
        .AddJsonFile("config.json")
        .AddEnvironmentVariables();

    Configuration = builder.Build();
}

但是,当您发布代码/站点时,config.json文件仍然放在approot文件夹中。要解决这个问题,您必须将其放到project.json文件中,如下所示

代码语言:javascript
复制
"publishExclude": [
    "node_modules",
    "bower_components",
    "config.json",
    "**.xproj",
    "**.user",
    "**.vspscc"
],
"exclude": [
    "wwwroot",
    "config.json",
    "node_modules",
    "bower_components"
]

现在,该文件可以在项目根中,因此您可以保存它的源代码管理,它可以在使用IIS Express进行开发时工作,而且它也没有发布。

希望这能帮到别人

票数 1
EN

Stack Overflow用户

发布于 2015-10-15 15:17:36

每个项目都应该有一个单独的文件夹。永远不要把一个文件夹放进你不想要的文件夹里。它最终可能看起来像这样:

代码语言:javascript
复制
/root
/root/Project1
/root/Project1/config.json
/root/Project1/wwwroot
/root/Project2
/root/Project2/config.json
/root/Project2/wwwwroot

很明显,你的结构不一定要完全匹配。但是,通常情况下,如果您使用单独的目录来分隔您的项目,并且不要将您的配置放在自己的wwwroot中,那么您就可以了。

顺便说一句,首先您可能希望避免在config.json文件中有任何秘密。你应该使用源代码控制软件,并且你应该避免秘密的东西被签入的情况。可能是环境变量或机密API

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33151690

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档