我已经阅读了所有关于react-router-dom(v4)的文档,以及大量带有相同错误的堆栈溢出问题,但A)它们留下了许多未回答的漏洞,B)它们似乎都建议了一个只用于开发的修复方案,所以我希望看看人们在这个简单的场景中实际在生产中做了什么,C)我可能在做一些愚蠢的事情,答案对我不起作用,控制台中没有错误地呈现“不能得到/关于”的错误。
我使用Express、React、Node和Webpack进行编译。我可以成功地到达我的主页,单击任何链接都会将我带到适当的组件,但手动键入URL会打破这一点,正如这里讨论的和这里讨论的错误的原因。
大多数回答建议在webpack.config.js文件中添加devserver.historyapifallback=true
和output.publicpath='/'
,这意味着我还需要运行NPM install--save-dev webpack-dev-server
,并按照文档中的建议使用node_modules/.bin/webpack-dev-server
运行它。做所有这些,什么也没发生。事实上,现在情况更糟,因为我也无法访问'/'的回家路由。
因此,在这里删除当前配置之前,1)我可以做些什么来修复这个问题?2)这有关系吗?webpack-dev-server显然只用于开发,那么生产呢?
我的webpack.config.js文件:
var webpack = require('webpack');
var path = require('path');
var envFile = require('node-env-file');
process.env.NODE_ENV = process.env.NODE_ENV || 'development';
try {
envFile(path.join(__dirname, 'config/' + process.env.NODE_ENV + '.env'))
} catch (e) {
}
module.exports = {
devServer: {
historyApiFallback: true,
},
entry: [
'script-loader!foundation-sites/dist/js/foundation.min.js',
'./app/app.jsx'
],
plugins: [
new webpack.DefinePlugin({
'process.env': {
//you don't get to see this
}
})
],
output: {
path: __dirname,
filename: './public/bundle.js',
publicPath: '/'
},
resolve: {
modules: [
__dirname,
'node_modules',
'./app/components',
'./app/api'
],
alias: {
app: 'app',
applicationStyles: 'app/styles/app.scss',
actions: 'app/actions/actions.jsx',
configureStore: 'app/store/configureStore.jsx',
reducers: 'app/reducers/reducers.jsx'
),
},
extensions: ['.js', '.jsx']
},
module: {
rules: [
{
loader: 'babel-loader',
query: {
presets: ['react', 'es2015', 'stage-0']
},
test: /\.jsx?$/,
exclude: /(node_modules|bower_components)/
},
{
loader: 'url-loader?limit=100000',
test: /\.(jpg|png|woff|woff2|eot|ttf|svg)$/
},
{
loader: 'sass-loader',
test: /\.scss$/,
options: {
includePaths: [
path.resolve(__dirname, './node_modules/foundation-sites/scss')
]
}
}
]
},
devtool: process.env.NODE_ENV === 'production' ? false : 'source-map'
};
我的app.jsx:
var React = require('react');
var ReactDOM = require('react-dom');
import {Provider} from 'react-redux';
import {BrowserRouter as Router, Route, Switch, Link, HashRouter} from 'react-router-dom';
import Home from 'Home';
import Watch from 'Watch';
import About from 'About';
import AddShow from 'AddShow';
var store = require('configureStore').configure();
import firebase from 'app/firebase/';
// Load Foundation
$(document).foundation();
// App css
require('style-loader!css-loader!sass-loader!applicationStyles');
ReactDOM.render(
<Provider store={store}>
<Router>
<div>
<Route exact path="/" component={Home}/>
<Route path="/watch" component={Watch}/>
<Route path="/about" component={About}/>
<Route path="/addshow" component={AddShow}/>
</div>
</Router>
</Provider>,
document.getElementById('app')
);
您必须设置web服务器(使用react应用程序为index.html
提供服务的服务器),以便将所有请求重定向到index.html
的url,以便react-router能够完成其工作。这就是建议对webpack.config.js
的更改对webpack-dev-server的作用
在webpack.config.js
中,需要启用html插件,以便webpack知道index.html
在哪里:
plugins: [
new webpack.DefinePlugin({
'process.env': {
//you don't get to see this
}
}),
new HtmlWebpackPlugin({
template: 'public/index.html' //or wherever your index.html is
})
],
主要内容:1. 访问帮助手册,2. 有关特定主题的帮助,3. 在手册中搜索帮助短语,4. 访问在线帮助Vim是功能丰富的编辑器,因此记住它的所有功能是有一定的困难的。 但是也不需要担心,因为总是可以寻求帮助。而这个帮助是由Vim本身提供的。 在本章中,将讨论以下主题内容 - 访问帮助手册 有关特定主题的帮助 在手册中搜索帮助短语 访问在线帮助 1. 访问帮助手册 Vim编辑器本身附带了帮助手册,它非常全面。 要访问帮助可执行以下命令 - 如下图所示: 2. 有关特定主题的帮助 帮助手册将显示有关
你可以从以下渠道获得关于pact的帮助: Google用户群组: https://groups.google.com/forum/ Gitter: 加入 https://gitter.im/realestate-com-au/pact 和 https://gitter.im/DiUS/pact-jvm 的交流
我们非常有兴趣在Envoy周围建立一个社区。如果您有兴趣使用它,需要帮助或想贡献,请联系我们。 请参阅联系信息 报告安全漏洞 请参阅安全联系信息
问题内容: 我运行以下命令: 我得到了一个可以自己使用的文件。工作正常,但是NODE_ENV已设置为开发状态,我得到了一个关于下载React DevTools的console.log。 如何将其设置为生产?我四处浏览,没有找到对我有用的东西。我尝试了envify,但是没有运气(我对JS版本非常陌生)。 我尝试将–NODE_ENV生产放在上面的行中,但是我对于浏览器和Babelify还是很陌生,所以
iam无法在运行应用程序时检索到swagger ui,http://localhost:8080/Swagger-ui.html,有人能说出原因吗?
问题内容: 请帮助我得到一个where 本身就是一个泛型类型。如我现在所见,Spring RestTemplate现在不支持此功能。我正在使用Spring MVC版本3.1.2 这是我要使用的代码:代码: 我收到此错误: 这是明显的错误,但是今天如何解决呢? 比我想得到我的通用响应类型: 现在,我使用此解决方案,并且不使用: 问题答案: 通过引入修复了该问题,你可以显式继承该参数化类型,以便在运行