Настройка React с помощью Asp.net MVC4, получение ошибки типа Не удалось загрузить ресурс [app.jsx] в браузере

Index.cshtml

@{
  ViewBag.Title = "Home Page";
 }

<div id="content"></div>
 <script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.3.2/react.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.3.2/react-dom.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/remarkable/1.7.1/remarkable.min.js"></script>
<script src="~/Scripts/react/react.min.js"></script>
<script src="@Url.Content("~/Scripts/app/app.jsx")"></script>

app.jsx

var HelloWorld = React.createClass({
    render: function () {
        return (
            <div>Hello World!!</div>
        );
}
});

получение ошибки в браузере, например

Не удалось загрузить ресурс: сервер ответил со статусом 500 (внутренняя ошибка сервера)


person Community    schedule 19.11.2017    source источник
comment
запустите свое приложение в режиме отладки и посмотрите, какое исключение оно вам выдаст   -  person Martin Shishkov    schedule 19.11.2017


Ответы (4)


Решил эту проблему с помощью следующих шагов,

1) Убедитесь, что установлен пакет React.Web.Mvc4, он называется в диспетчере NuGet как ReactJS.NET

2) Установите следующие пакеты из диспетчера NuGet,

 JavaScriptEngineSwitcher.V8
 JavaScriptEngineSwitcher.V8.Native.win-x64
 JavaScriptEngineSwitcher.V8.Native.win-x86 

3) В каталоге App_Start обновить файл ReactConfig.cs

    public static void Configure()
    {
        JsEngineSwitcher.Current.DefaultEngineName = V8JsEngine.EngineName;
        JsEngineSwitcher.Current.EngineFactories.AddV8();
    }

4) Очистить, построить решение.

person Radheshyam Gawari.    schedule 28.05.2020

Во-первых, ваш код кажется в порядке.

Вы можете посмотреть URL-адрес, который выдает ошибку 500 в браузере. локальный/.../.jsx

у вас может быть что-то вроде этого

Ошибка

Если вы посмотрите на https://reactjs.net/getting-started/aspnet.html

Установите эти NuGet

В вашем проекте у вас должен быть reactconfig.cs

файл реакцииconfig.cs

нужно настроить как на картинке

реактконфиг

это оно.

person Gustavo    schedule 19.09.2019
comment
Я только настроил так: JsEngineSwitcher.Current.DefaultEngineName = V8JsEngine.EngineName; JsEngineSwitcher.Current.EngineFactories.AddV8(); Я не добавлял .AddScript(~/Scripts/bla/bla), и представление MVC Razor находит и отображает файл jsx. - person Armando Servin; 03.03.2021

Попробуйте перенести ваши .jsx файлы в .js с помощью babel или веб-компилятора (устанавливайте из расширений VS) и ссылайтесь на них из представления. Также удалите вторую react библиотеку:

<script src="~/Scripts/react/react.min.js"></script>
person Martin Shishkov    schedule 19.11.2017

Решено путем добавления этого в ConfigureServices в Startup.cs:

services.AddJsEngineSwitcher(options => 
     {
           options.DefaultEngineName = V8JsEngine.EngineName;
           options.EngineFactories.AddV8();
     }
);
person Evgeny Urubkov    schedule 13.02.2021