gpt4 book ai didi

ASP.NET MVC6 : Setting webroot programmatically

转载 作者:行者123 更新时间:2023-12-04 19:53:03 24 4
gpt4 key购买 nike

在 ASP.NET MVC6 中,静态文件来自 wwwroot默认情况下。

目录wwwrootproject.json 中定义由 key webroot (如此处所述: http://docs.asp.net/en/latest/fundamentals/static-files.html )

我想知道是否可以设置此 webroot在运行时(在启动时)以编程方式。

我想转 webroot在运行时取决于在调试或生产模式下运行。由于我的静态 Assets (JS、CSS ...)是在构建时处理的(连接、缩小...),我认为最好的方法是拥有一个包含源 Assets 的目录和一个包含优化 Assets 的目录(构建输出)。

在运行时我想指出 webroot在生产模式下运行时优化 Assets 。

有没有人想出如何设置webroot以编程方式?

2015-11-19 更新:在我的场景中,我只想使用静态文件。正如回答中指出的那样,当使用 Razor 对 html 进行服务器端渲染时,可以使用 TagHelpers ( http://blogs.msdn.com/b/cdndevs/archive/2015/08/06/a-complete-guide-to-the-mvc-6-tag-helpers.aspx ) 实现不同 Assets 之间的切换。

最佳答案

我会走不同的路。

首先,当您 F5 应用程序时,它会自动设置 ASPNET_ENVDevelopment .在 Razor 中,你可以使用 TagHelpers 像这样切换你的资源:

<environment names="Development">            
<link rel="stylesheet" href="~/css/site1.css" />
<link rel="stylesheet" href="~/css/site2.css" />
</environment>
<environment names="Staging,Production">
<link rel="stylesheet" href="~/css/site.min.css" asp-file-version="true"/>
</environment>

这将允许您根据实际运行的环境更改资源/javascript 甚至 HTML。

唯一缺少的是设置 ASPNET_ENV在您的登台和生产机器上,它将自动被拾取。无需更改 wwwroot动态。

如果你真的想坚持改变 wwwroot ,对我来说这将是一个部署任务而不是运行时步骤。

否则, check the documentation在您已经链接的静态文件上。它提供了有关如何在运行时链接不同文件夹的代码示例。也许您缺少的是对 IHostingEnvironment 的依赖这将为您提供环境变量来决定您所在的环境。

关于ASP.NET MVC6 : Setting webroot programmatically,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33467222/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com