React + React Router + ASP.NET MVC / IIS, показывающий пустую страницу только в рабочей среде? - PullRequest
0 голосов
/ 01 апреля 2019

Я настраиваю простое приложение, используя ASP .NET MVC 4 и React / React Router, работающие на IIS.Все работает нормально при работе на моем локальном IIS Express (экземпляр, который запускается Visual Studio), но при попытке запустить на производстве я получаю пустую страницу. Нет ошибок JS или 404, пакет загружается правильно, но не выполняется.

Я совершенно не понимаю, почему это работает в локальном IIS, запущенном VS2013, но не работает, когдаперемещение проекта для запуска в качестве приложения на существующий веб-сайт IIS.Буду признателен за любую помощь.

У меня есть только один универсальный маршрут, настроенный в RouteConfig.js, который обслуживает Index.cshtml с использованием View():

routes.MapRoute(
    name: "Default",
    url: "{*url}",
    defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);

Мой сингл .cshtml файл:

<div id="app"></div>
@Scripts.Render("~/Scripts/dist/bundle.js")

И мой webpack.config.js файл:

const path = require('path')

module.exports = {
    entry: path.resolve(__dirname, './src/js/App.jsx'),
    output: {
        path: path.resolve(__dirname, './dist'),
        filename: 'bundle.js'
    },
    resolve: {
        alias: {
            Components: path.resolve(__dirname, './src/js/components'),
            Pages: path.resolve(__dirname, './src/js/pages'),
            Util: path.resolve(__dirname, './src/js/util'),
            Styles: path.resolve(__dirname, './src/scss/'),
        }
    },
    module: {
        rules: [
            {
                test: /\.jsx?$/,
                exclude: /node_modules/,
                use: {
                    loader: "babel-loader"
                }
            },
            {
                test: /\.s?css$/,
                use: [
                    {
                        loader: 'style-loader'
                    },
                    {
                        loader: 'css-loader'
                    },
                    {
                        loader: 'sass-loader'
                    }
                ]
            },
        ]
    }
};

1 Ответ

0 голосов
/ 01 апреля 2019

Оказывается, это была не проблема с моим конфигом, а скорее с моим React Router.Базовый URL сайта разработчика - это просто "/", но версия, на которую я развертывал, имеет базовый URL "/ appName".Установка опоры «basename» моего BrowserRouter устранила проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...