簡體   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