我正在使用ASP .NET MVC 4和在IIS上运行的React / React Router设置一个简单的应用程序。在本地IIS Express(由Visual Studio启动的实例)上运行时,一切工作正常,但是在生产环境中尝试运行时,出现空白页面。 没有JS错误或404错误,捆绑包已正确加载但未执行。
我完全不知道为什么它可以在由VS2013启动的本地IIS中工作,但在将项目作为现有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'
}
]
},
]
}
};
答案 0 :(得分:0)
结果证明这不是我的配置问题,而是我的React Router。开发人员站点的基本URL只是“ /”,但是我要部署到的版本的基本URL是“ / appName”。设置我的BrowserRouter的“基本名称”道具可以解决此问题。