什么是 asp.net vnext 中的 wwwroot
Posted
技术标签:
【中文标题】什么是 asp.net vnext 中的 wwwroot【英文标题】:What is wwwroot in asp.net vnext 【发布时间】:2015-02-23 05:30:37 【问题描述】:我在 Visual Studio 2015 中创建了新的 asp.net mvc 项目。该项目有一个 wwwroot 文件。这是什么?
【问题讨论】:
【参考方案1】:引用官网:
wwwroot 文件夹是 ASP.NET 5.0 中的新文件夹。中的所有静态文件 你的项目进入这个文件夹。这些是应用程序将 直接服务于客户端,包括 html 文件、CSS 文件、图像 文件和 javascript 文件。 wwwroot 文件夹是您的根目录 网站。即http://some.hostname/指向wwwroot,所有的URL为 静态内容是相对于 wwwroot 文件夹的。
代码文件应该放在 wwwroot 之外。这包括所有 C# 文件和 Razor 文件。 > 拥有 wwwroot 文件夹可以清晰地分隔代码文件和静态文件。
Source
值得一提的是,wwwroot
这个术语本身当然并不新鲜,它实际上是跨许多平台(包括 J2EE 应用程序和 IIS 本身及其 c:\inetpub\wwwroot
目录)使用的约定。
Unix/Linux 世界中的类似约定是 htdocs
、public_html
和 www
。
【讨论】:
另一个有趣的注意事项是名称 wwwroot 实际上并不特殊。您的 project.json 定义了该文件夹的名称。如果您更改它,那么 wwwroot 将成为 VS 中的普通文件夹,并且新文件夹将获得特殊图标。最初它被称为 public,这甚至可能仍然是默认设置,但 wwwroot 由于其熟悉而被搭建。 为了获得最佳实践,TypeScript 文件应该放在哪里?例如,我有一个由模块(例如/account、/users、/calendar)分隔的应用程序,其中每个模块都有TypeScript
文件和html templates
。您认为这个案子应该如何处理?
如果那些.ts
文件需要客户端可用(通常用于客户端编译),那么肯定在wwwroot
下(可能是wwwroot/scripts
)。如果它们是预编译的,则它们不应位于 wwwroot
之下。
自从这个问题得到回答已经有一段时间了,“源”链接现在看起来像是在其他地方,所以我想我会添加讨论 wwwroot for asp.net-core v2.1 的链接:@ 987654323@【参考方案2】:
wwwroot
文件夹是 ASP.NET 5 中的新文件夹,用于存储项目中的所有静态文件。发送到用户浏览器的任何文件,包括 HTML 文件、CSS 文件、图像文件和 JavaScript 文件都应存储在此文件夹中。
代码文件应放在wwwroot
之外,包括 C# 文件和 Razor 视图。拥有一个wwwroot
文件夹可以保持代码文件和静态文件之间的清晰分离。它使将要发送到服务器的项目以及应该保留在开发机器上的项目变得清晰。如果你看截图,wwwroot
文件夹有 css 和 lib 子文件夹。 Css 文件夹是保存自定义 css 文件的地方,而 lib 文件夹由 Bower 包管理器使用。 lib 文件夹包含 Bower 下载的包,可以包含 css、js 和图像。
截图显示 lib 文件夹有一个引导包文件夹。如果你展开它,你会发现 css、js 以及所有其他与 bootstrap 包相关的资产。
在 MVC4 中,我们使用 content 文件夹来保存样式表以及用于引用脚本的 scripts 文件夹。这些文件夹现在已经消失了,因此了解样式表或脚本没有单独的文件夹很重要。它们可以位于wwwroot
内的任何文件夹中。
有趣的是,如果您希望在 razor 视图中引用 css、js 或 img 文件,使用 ~ 关键字可确保指向 wwwroot
文件夹的直接路径。因此,假设您想在视图中引用 site.css,您可以使用 <link rel="stylesheet" href="~/css/site.css" />
语法访问它。
可以看到~
关键字指向wwwroot
文件夹。
【讨论】:
以上是关于什么是 asp.net vnext 中的 wwwroot的主要内容,如果未能解决你的问题,请参考以下文章
Asp.net vNext 早期测试版发布到 Windows 服务器中的 IIS