【问题标题】:Aurelia project setup and folder structure in Visual Studio 2015: what goes in wwwroot?Visual Studio 2015 中的 Aurelia 项目设置和文件夹结构:wwwroot 中有什么?
【发布时间】:2015-07-19 10:37:55
【问题描述】:

我想开始在 Visual Studio 2015 RC 中使用 Aurelia 和 MVC 6 Web API,我使用 OdeToCode's blog post 作为起点。

我理解新的wwwroot 文件夹背后的想法,但我基本上不知道应该或不应该放什么。

我最初的想法是安装所有 jspm 包以及实际的 JavaScript 源文件wwwroot 文件夹之外,然后使用 gulp 复制开发时运行所需的所有内容或在部署时捆绑和复制。

它看起来像这样:

但话又说回来,我应该将index.html 也放在src 文件夹中吗?和config.js?还是我真的让自己的生活变得困难,应该从wwwroot 文件夹中开发?

让我困惑的是jspm 包;当我打算打包和缩小时,在wwwroot 中有这么多的 JavaScript 文件感觉不对。

简而言之: Visual Studio 2015 中 Aurelia ASP.NET 5 应用的首选文件夹结构是什么?

【问题讨论】:

  • 如果您正在构建和捆绑,我会将 jspm_packages 保留在 wwwroot 之外。我只会保留从 wwwroot 中的文件系统提供的静态资产。
  • 谢谢@OdeToCode,这也是我的感觉,但这意味着我每次在开发时运行应用程序时都需要捆绑,对吗?
  • 是的,这是一种权衡。如果您想直接从 wwwroot 之外的另一个文件夹提供服务,您应该能够使用 StaticFiles 中间件,即使只是用于开发/调试。
  • 再次感谢。顺便说一句,您可能想考虑将其添加为答案;)并且,如果您感觉很慷慨,也许还有一个示例,说明如何使用 StaticFiles 从外部 wwwroot 实现服务:p
  • 对于这么简单的事情似乎需要做很多工作,你为什么要关心你的 jspm 文件夹?把它保存在 wwwroot 中,反正它不会被客户端下载,那么为什么还要费心 gulp 呢?我在 Visual Studio 中看到 gulp gulp 的唯一目的是捆绑和缩小,而且只有在部署到生产环境时才会这样做。不要被其他不使用 VS 并且需要部署到本地 Web 服务器的开发人员所迷惑。

标签: asp.net-core visual-studio-2015 aurelia


【解决方案1】:

我在这上面花了很长时间,最终确定了:

  • 应用程序名称
      • API
        • 在这里,我有一个 ASP.NET 5 项目,它提供了供 Aurelia 应用程序使用的 api。您可能需要开启 CORS 以避免错误。
      • 客户端.Web
        • 在这里,我开始使用 Aurelia 骨架导航应用程序。我们将 dist 文件夹更改为 wwwroot。 jspm_packages 文件夹位于 wwwroot 之外,框架导航应用附带的 gulp 任务负责根据需要将所有复制到 wwwroot。

这个方法给我带来了以下好处:

  • 彻底分离 api 和客户端代码。
  • 可选择单独部署 api 和客户端。
  • 能够利用骨架导航应用附带的所有 gulp 任务
  • 清除位置以切换到 Javascript 文件命名约定 (camelCase)

这种方法的缺点:

  • 启动完整的应用程序更加困难。目前,我必须在 Visual Studio 中单击“播放”来启动 api,然后我必须启动 gulp watch。这没什么大不了的,因为您几乎可以让 gulp watch 在整个开发过程中运行。

【讨论】:

  • 熟悉Task Runner Explorer?您可以在构建、清洁和其他一些之前或之后附加一些步骤。您可以在构建后的事件中附加gulp watch,少一个手动步骤;-)
  • @Andrew 是的,我已经尝试过 Task Runner Explorer,它很好。理想情况下,gulp watch 不会在 build 上运行,而是在 run 上运行,但 run 不是我所知道的选项。您可以通过“播放”按钮使用来自project.json 的任何 dnx 命令,因此您可以通过这种方式一步启动多个项目。问题是,我还没有找到从project.jsoncommands 部分启动 gulp 任务的方法。
  • "目前,我必须在 Visual Studio 中单击"播放"" 使用 IIS Pro 或使用 topshelf 库在 windows 服务上运行 owin。
  • @JoshGraham,您可能必须创建一个gulp 任务来将jspm_packages/system.js 和其他文件复制到wwwroot,这样Aurelia 骨架才能运行,不是吗?你指示 gulp 复制什么? jspm_packages 文件夹中的所有内容?如果没有,是否愿意在您的答案中分享该任务?
  • @SergiPapaseit 我不必创建一个 gulp 任务来将任何 jspm_packages 复制到 wwwroot。 Aurelia 骨架导航带有一个名为 gulp watch 的 gulp 命令,它服务于 project 根而不是 wwwroot (或者如果你没有重命名它,则为 dist)。我希望在构建项目时将所有内容都复制到 wwwroot,但是当复制 jspm_packages 文件夹时,Visual Studio 一直在崩溃,所以我目前只是让它从项目根目录中服务,并计划在新版本的 Visual Studio 发布时重新访问.
猜你喜欢
  • 1970-01-01
  • 2017-03-19
  • 1970-01-01
  • 2015-08-18
  • 2015-11-03
  • 1970-01-01
  • 2020-03-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多