我已使用自定义域将MEAN Stack项目推送到Heroku。当我尝试检查每条路线时,一切运行良好。但是,当我重新加载页面或使用该路由的URL访问某个页面时,它会返回:
无法获取/ page
如何发生?以及如何解决?谢谢。
如果需要,这是我的app.js文件:
const express = require('express');
const path = require('path');
const bodyParser= require('body-parser');
const passport = require('passport');
const mongoose = require('mongoose');
const config = require('./config/database');
const port = process.env.PORT || 8080;
const cors = require('cors');
const app = express();
const users = require('./routes/users');
const companies = require('./routes/companies');
const reports = require('./routes/reports');
app.use(cors());
mongoose.connect(config.database);
mongoose.connection.on('connected', ()=>{
console.log('Connected to ' +config.database);
});
mongoose.connection.on('error', (err)=>{
console.log('Unable to Connect ' +config.database);
});
app.use(express.static(path.join(__dirname,'public')));
app.use(bodyParser.json());
app.use(passport.initialize());
app.use(passport.session());
require('./config/passport')(passport);
app.use('/reports', reports);
app.use('/companies', companies);
app.use('/users', users);
app.get('/',(req, res)=>{
res.send('Index Page');
});
app.listen(port, () => {
console.log('Server Running on Port : '+port)
});
答案 0 :(得分:2)
因此,假设这是SPA,则很可能您的客户端路由在服务器上不存在,这是有意为之,并且是创建SPA(不刷新页面)的主要好处之一。但是,结果是存在一个问题,如果您在这些路由之一上刷新时,服务器将因为路由不匹配而失败。
要解决此问题,您需要确保为客户端应用提供服务的路由始终为应用提供服务(当然,不包括任何现有的服务器URL)。明确地说,这可以通过在网址格式中使用通配符参数来实现,即
app.get('/*', (req, res) => res.send('Index Page'));
这将匹配根URL中与先前配置的URL不匹配的任何路径-因此,在您的示例中,如果您在/page
上刷新,则应呈现应用。
答案 1 :(得分:0)
您设置了路由器,请尝试以下操作,然后再次将提交推送到heroku。
df = pd.DataFrame(list(map(Counter, doc_clean)))