繁体   English   中英

Asp.Net Core Web Api 和 Vue.js 客户端 IIS

[英]Asp.Net Core Web Api and Vue.js client with IIS

我正在尝试创建一个以 Asp.Net Core (.NET 6.0) 作为后端,以 Vue.js 作为前端的应用程序。 我在 Visual Studio 2022 中创建了 .NET 项目,添加了 SPA 扩展,最后我的 Program.cs 文件如下所示:

var builder = WebApplication.CreateBuilder(args);

// Add services to the container.

builder.Services.AddControllers();

// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();

// Used by single page application requirements.
builder.Services.AddSpaStaticFiles(options =>
{
    options.RootPath = "wwwroot";
});

var app = builder.Build();

// Configure the HTTP request pipeline.
if (app.Environment.IsDevelopment())
{
    app.UseSwagger();
    app.UseSwaggerUI();
}

app.UseHttpsRedirection();

app.UseAuthorization();

app.MapControllers();

app.UseStaticFiles();
if (!app.Environment.IsDevelopment())
{
    app.UseSpaStaticFiles();
}

app.UseSpa(configuration =>
{
    configuration.Options.SourcePath = "wwwroot";
    if (app.Environment.IsDevelopment())
    {
        configuration.UseProxyToSpaDevelopmentServer("http://localhost:5002");
    }
});

app.Run();

使用设置部署代码:

  • 删除现有文件
  • 配置Release
  • 目标net6.0框架
  • 目标win-x64运行时

为我生成一个包含 wwwroot 文件夹的文件夹,其中包含前端文件和我的后端应用程序的许多文件。 我将它们放在 iis 服务器内的应用程序中,应用程序池配置为:

  • .NET CLR 版本 4.0
  • 集成流水线模式

但是我的应用程序只能加载 index.html 文件而不能加载 any.js 或 .css。

我的应用程序具有这样的绑定: https://app.domain.it/app-name她每次都尝试打开https://app.domain.it/filename.ext文件,但失败了,因为文件位于https://app.domain.it/app-name/wwwroot/file.ext他正在搜索https://app.domain.it/file.ext

任何人都可以帮助我吗?

编辑 1:因为我选择了独立模式,所以我不需要在服务器主机上安装 .NET 6 运行时,对吧?

我的建议是创建两个不同的应用程序池,然后分别将 .net 核心解决方案部署为您的 API (a) 并将 vue-app 作为您的 UI (b)。

(a) 标准部署,既没有对 UI 项目的项目引用,也没有关于 Static 和默认文件的管道配置( app.UseStaticFiles(); app.UseDefaultFiles(); 不是必需的 在此处输入图像描述

(b) 在 VS 中右键单击 vue 项目并“在终端中打开”-> 然后npm 运行构建-> 然后 go 到 dist 文件夹并将内容复制到 IIS 上相应应用程序池的物理路径

在此处输入图像描述

解决方案对我有用。 让我知道它是否也适合您,如果您有任何问题。 希望我能帮助你。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM