我很困惑,为什么我无法通过在网址栏中输入完整路径来访问我的部分应用。如果我去localhost:8080我可以通过链接移动我的应用程序,但如果我尝试直接访问状态,比如localhost:8080 / event一个空白屏幕显示没有错误。更重要的是,我的所有文件都显示它们已加载到chrome dev工具的网络选项卡上(包括我的索引页面)
客户端路由器:
import React from 'react';
import {Router, Route, IndexRoute} from 'react-router';
import {render} from 'react-dom';
import {createHistory} from 'history';
import EventTable from './components/event/eventTable';
import EventManager from './components/event/eventManager';
import Event from './components/event/event';
var history = createHistory();
render((
<Router history={history}>
<Route path="/" component={require('./components/app')}>
<IndexRoute component={EventTable} />
<Route path="/signup" component={require('./components/auth/signup')} />
<Route path="/login" component={require('./components/auth/login')} />
<Route path="event" component={EventManager} />
<Route path="event/:eventid" component={Event} />
</Route>
</Router>
), document.getElementById("app"));
服务器路由器:
'use strict'
var members = require('../controllers/members.js');
var auth = require('../controllers/auth.js');
var router = require('koa-router')();
var eventController = require('../controllers/event.js');
router.get('/api/members', auth.isAuth, members.allmembers);
router.post('/api/addmembers', auth.isAuth, members.addMembers);
router.post('/api/addmember', auth.isAuth, members.addNewMember);
router.post('/api/notify', members.notify);
router.post('/api/login', auth.login);
router.post('/api/signup', auth.signup);
router.get('/api/authcheck', auth.checkToken);
router.post('/api/createevent', eventController.createEvent);
router.get('/api/events', eventController.getEvents);
router.post('/api/fileupload', function *(next) {
console.log(this);
yield this.body = {};
})
router.get('/api/awsurl', function *(next){
yield this.body = {url: upload.getUrl()};
})
router.get('/', function *(next) {
yield this.render('index');
})
router.get('*', function *(next) {
yield this.render('index');
})
module.exports = router.routes();
我正在运行react-router 1.0.3和KOA 1.0.0
编辑1:
我知道这是一个混合的import / require,我在将应用程序转换为es6的过程中,我已经尝试搞乱这个并且它似乎不会导致问题。此外,包含或省略前置/
似乎也没有任何效果。