【问题标题】:Serving a static file Gulp generated Aurelia SPA with IIS and a Asp.Net web API使用 IIS 和 Asp.Net Web API 提供静态文件 Gulp 生成的 Aurelia SPA
【发布时间】: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 应用程序启动并运行,无需任何进一步的自定义。

【问题讨论】:

    标签: asp.net iis aurelia


    【解决方案1】:

    您可以将您的index.htmlconfig.jsdist 文件夹、jspm_packages 文件夹以及包含其他图像/css 资产的任何文件/文件夹复制到包含您托管的 API 应用程序的文件夹(或子文件夹)中通过 IIS。

    如果您进行任何捆绑,您可能不需要复制所有 jspm_packages 文件夹,这取决于您的捆绑配置。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-02-11
      • 2012-10-23
      • 2020-01-29
      • 2018-06-02
      • 2017-08-25
      • 2020-08-08
      • 1970-01-01
      • 2019-07-02
      相关资源
      最近更新 更多