Angular2 SPA에서 작동하도록 Visual Studio 2017 ASP.NET Core 1.1 솔루션을 설정하려고합니다.ASP.NET Core 1.1 내 TypeScript에서 웹 API 메서드 URL을 올바르게 계산하는 방법 해결책?
npm install -g yo generator-aspnetcore-spa
yo aspnetcore-spa
을하고 비주얼 스튜디오 2017 커뮤니티 에디션에 오픈 :
가 나는 다음 명령을 사용하여 샘플 csproj
을 만들었습니다.
IIS Express 10을 실행하면 잘 작동합니다 (라우팅, 새로 고침, 웹 API 호출). IIS에서 웹 응용 프로그램 내에서 배포 할 때, 웹 API 호출로 인해 경로를 포함하지 않는 웹 응용 프로그램 이름에 실패이 잘 작동
constructor(http: Http) {
http.get('/api/SampleData/WeatherForecasts').subscribe(result => {
this.forecasts = result.json() as WeatherForecast[];
});
}
:
fetchdata.component.ts 파일을 다음과 같이 데이터를 가져 오기 정의 IIS Express에서 경로 http://localhost:port/api/SampleData/WeatherForecasts
이 올바른지 확인하십시오. URL에서
http://localhost:port/ApplicationName/api/SampleData/WeatherForecasts
하드 코딩 응용 프로그램 이름이 작동하지만이 가능한 솔루션되지 않습니다 : 그러나, 올바른 경로이기 때문에이 IIS에서 실패합니다.
나는 제대로 설정 기본 (경로)에 _Layout.cshtml을 변경,하지만 작동하지 않습니다
<!DOCTYPE html>
@{
string basePath = Url.Content("~");
}
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>@ViewData["Title"] - WebApplicationBasic</title>
<base href="@basePath" />
<link rel="stylesheet" href="~/dist/vendor.css" asp-append-version="true" />
</head>
<body>
Base path: @basePath
@RenderBody()
@RenderSection("scripts", required: false)
</body>
</html>
내가 제대로 이해하면 경로가 외부에 배치되어 tsconfig.json
파일에 상대적으로 간주됩니다 wwwroot 폴더. 그러면 ts에서 생성 된 js의 모든 경로가 웹 응용 프로그램 폴더를 고려하지 않는 이유를 설명 할 수 있습니다.
질문 : TypeScript 파일을 사용하는 호출에 URL 접두어를 어떻게 동적으로 지정할 수 있습니까?
예, 작동합니다. 고맙습니다! 내 코드에는 두 가지 실수가있었습니다. '는 '또는 '이어야하고 당신이 언급 한 것처럼 여분의'/'. –
Alexei