Ich habe viel googelt, und ich habe nicht herausgefunden, wie es geht. Ich habe eine Web-App, die ich gerne auf Azure bereitstellen würde. Ich erzeuge den Link, aber die Routen, die meine React-Komponenten verwenden, geben einen 500-Statuscode zurück.Veröffentlichen zu Azure, asp.net Kern React App
Für meine Komponenten verwende ich JSX und ich habe sie im wwwroot-Ordner unter/js (ich benutze nicht ES16).
Ich brauche etwas, um es zu bündeln und diese jsx in js richtig zu verarbeiten? Ich verstehe nicht, warum es auf localhost funktioniert.
Auf Startup.cs, konfigurieren Methode, habe ich die Skripte wie folgt aus:
app.UseReact(config =>
{
config
.AddScript("~/js/test.jsx")
.AddScript("~/js/users.jsx")
.AddScript("~/js/userCards.jsx")
.AddScript("~/js/userInfo.jsx")
.AddScript("~/js/cards.jsx")
.AddScript("~/js/user.jsx")
.AddScript("~/js/addCard.jsx")
.AddScript("~/js/cardImages.jsx")
.SetJsonSerializerSettings(new JsonSerializerSettings
{
StringEscapeHandling = StringEscapeHandling.EscapeHtml,
ContractResolver = new CamelCasePropertyNamesContractResolver()
});
});
Es tut mir leid, wenn es eine dumme Frage, aber ich kann nicht eine gute Erklärung scheinen für asp zu finden .net Kern.
[EDIT] Ich verwende VS2017, asp.net Kern 1.0.4 und 3.0.1 React.AspNet
Die Fehlerprotokolle:
ReactEngineNotFoundException: No usable JavaScript engine was found. Please
install a JavaScript engine such as React.JavaScriptEngine.ClearScriptV8 (on
Windows) or React.JavaScriptEngine.VroomJs (on Linux and Mac OS X). Refer
to the ReactJS.NET documentation for more details.
React.AspNet.HtmlHelperExtensions.get_Environment()
TinyIoCResolutionException: Unable to resolve type:
React.JavaScriptEngineFactory
React.AspNet.HtmlHelperExtensions.get_Environment()
TinyIoCResolutionException: Unable to resolve type: React.ReactEnvironment
React.AspNet.HtmlHelperExtensions.get_Environment()
ReactNotInitialisedException: ReactJS.NET has not been initialised
correctly. Please ensure you have called app.AddReact() and
app.UseReact() in your Startup.cs file.
React.AspNet.HtmlHelperExtensions.get_Environment()
Es sagt ich habe keine App .AddReact noch app.UseReact, aber ich habe dann beide ...
public void ConfigureServices(IServiceCollection services)
{
services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();
services.AddReact();
services.AddServerSentEvents();
services.AddServerSentEvents<INotificationsServerSentEventsService, NotificationsServerSentEventsService>();
services.AddMvc();
services.AddSingleton<HttpClient>();
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory, IServiceProvider serviceProvider)
{
loggerFactory.AddConsole(Configuration.GetSection("Logging"));
loggerFactory.AddDebug();
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
app.UseBrowserLink();
}
else
{
app.UseDeveloperExceptionPage();
app.UseBrowserLink();
}
app.MapServerSentEvents("/see-heartbeat");
app.MapServerSentEvents("/sse-notifications", serviceProvider.GetService<NotificationsServerSentEventsService>());
app.UseStatusCodePagesWithReExecute("/Error/{0}");
app.UseReact(config =>
{
config
.AddScript("~/js/test.jsx")
.AddScript("~/js/users.jsx")
.AddScript("~/js/userCards.jsx")
.AddScript("~/js/userInfo.jsx")
.AddScript("~/js/cards.jsx")
.AddScript("~/js/user.jsx")
.AddScript("~/js/addCard.jsx")
.AddScript("~/js/cardImages.jsx")
.SetJsonSerializerSettings(new JsonSerializerSettings
{
StringEscapeHandling = StringEscapeHandling.EscapeHtml,
ContractResolver = new CamelCasePropertyNamesContractResolver()
});
});
app.UseDefaultFiles();
app.UseStaticFiles();
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Index}/{action=Index}/{id?}");
});
}
Was sind die Details Ihres Fehlers? '500' ist nicht beschreibend genug, um das Problem zu isolieren. – Svek
@Svek Ich habe die Fehlerprotokolle zur Frage hinzugefügt – franmcod