【发布时间】:2015-10-21 16:15:23
【问题描述】:
我在 Asp.Net 中开发了一个 web api 和一个调用 restless api 的单页应用程序。
SPA 是使用 Aurelia 创建的用户界面,目前我在我的开发环境中使用 Gulp,它为我提供了一个包含所有静态 .js/.html 文件的 dist 文件夹。
现在我需要在生产/暂存中部署我的 SPA(api 已经设置并运行),鉴于工作中的限制,我唯一的选择是使用由静态 html/js/css/img 文件组成的 SPA IIS。
我将如何从开发模式下的 gulp watch 转变为将其与我现有的当前正在运行的 Asp.Net web api 实际集成?
我想我必须将 dist 文件夹复制到我的 Web api 应用程序所在的 Asp.Net 项目中(或者将其复制到现有的 Web api 项目,或者在相同的解决方案下为 SPA 静态文件创建另一个项目?) 在视觉工作室中,但接下来呢?
正如我提到的,我将 Aurelia 与 gulp 一起使用,这意味着里面的 app.html/.js 文件是应用程序启动的地方。
编辑
我已经接受了 Jeremy 的回答,但是我决定创建一个单独的空白 asp.net 5 项目。正如 Jeremy 所说,我必须添加以下文件夹和文件:
- mySolution
- api (exiting api project)
- user-interface (my newly created Aurelia spa)
- wwwroot
- dist
- images
- jspm_packages
- scripts
- styles
- config.js
- index.html
我按照这里的教程进行操作:http://shellmonger.com/2015/07/10/the-aurelia-tutorial-revisited/ 但是由于 beta5 中的一些重大更改,我在使用 Startup.cs 和 project.json 时遇到了一些问题。
解决方案在这里:https://github.com/aspnet/Announcements/issues/25#issuecomment-106141289
public IConfiguration Configuration { get; set; }
public Startup(IHostingEnvironment env, IApplicationEnvironment appEnv)
{
var configurationBuilder = new ConfigurationBuilder(appEnv.ApplicationBasePath)
.AddJsonFile("config.json", optional: true)
.AddEnvironmentVariables();
Configuration = configurationBuilder.Build();
}
但为了使其正常工作,我最终更改了 project.json 中的以下几行
"Microsoft.Framework.Runtime.Abstractions": "1.0.0-beta4",
"Microsoft.Framework.Configuration.UserSecrets": "1.0.0-beta4"
到 beta5 而不是 beta4
"Microsoft.Framework.Runtime.Abstractions": "1.0.0-beta5",
"Microsoft.Framework.Configuration.UserSecrets": "1.0.0-beta5"
令我惊讶的是,在它编译后,我的 Aurelia 应用程序启动并运行,无需任何进一步的自定义。
【问题讨论】: