J'essaie de mettre en place une solution Visual Studio 2017 ASP.NET Core 1.1 pour travailler avec un SPA Angular2.Comment calculer correctement les URL des méthodes de l'API Web dans TypeScript dans ASP.NET Core 1.1. Solution?
J'ai créé un échantillon csproj
en utilisant les commandes suivantes:
npm install -g yo generator-aspnetcore-spa
yo aspnetcore-spa
puis ouvert dans Visual Studio 2017 Community Edition. Lorsque vous utilisez IIS Express 10, il fonctionne correctement (routage, actualisation, appels API Web). Cependant, lors du déploiement dans une application Web sous IIS, les appels API Web échoue en raison de chemin ne contenant pas de nom de l'application Web:
fichier fetchdata.component.ts définit extraction de données comme suit:
constructor(http: Http) {
http.get('/api/SampleData/WeatherForecasts').subscribe(result => {
this.forecasts = result.json() as WeatherForecast[];
});
}
Cela fonctionne bien dans IIS Express, le chemin http://localhost:port/api/SampleData/WeatherForecasts
est correct. Toutefois, cela ne fonctionne pas sous IIS parce que le chemin correct est:
http://localhost:port/ApplicationName/api/SampleData/WeatherForecasts
nom de l'application Coder en dur dans les travaux URL, mais ce n'est pas une solution viable.
J'ai changé _Layout.cshtml à la base correctement réglé (chemin), mais il ne fonctionne pas: le chemin est
<!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>
Si je comprends bien, supposé être relatif au fichier tsconfig.json
qui est placé à l'extérieur Dossier wwwroot. Cela expliquerait pourquoi tous les chemins de js générés depuis ts ne prennent pas en compte le dossier de l'application web.
Question: Comment puis-je spécifier dynamiquement le préfixe d'URL pour les appels avec des fichiers TypeScript?
Oui, cela fonctionne. Je vous remercie! J'ai eu deux erreurs dans mon code: ' ' devrait être 'ou' 'et supprimer l'extra '/' comme vous l'avez mentionné. –
Alexei