2016-08-29 3 views
1

Я использую agent-маршрутизатор для навигации по моей странице на странице auth. Вот мой код:React Router не указан входной файл

import React, {Component} from 'react'; 
import ReactDOM from 'react-dom'; 
import {Provider} from 'react-redux'; 
import {createStore, applyMiddleware} from 'redux'; 
import {Router, Route, IndexRoute, browserHistory} from 'react-router'; 
import reducers from './reducers'; 

import App from './components/app'; 
import Authenticate from './components/auth/index'; 
import Login from './components/auth/login'; 

ReactDOM.render(
    <Provider store={createStoreWithMiddleware(reducers)}> 
     <Router history={browserHistory}> 
      <Route path="authenticate"> 
       <IndexRoute component={Login} /> 
       <Route path="/login" component={Login}/> 
      </Route> 
      <Route path="/" component={App}> 
       <IndexRoute component={Login} /> 
      </Route> 
     </Router> 
    </Provider> 
    , document.querySelector('.container') 
); 
ReactDOM.render(
    <Provider store={createStoreWithMiddleware(reducers)}> 
     <Router history={browserHistory}> 
      <Route path="/authenticate" component={Authenticate}> 
       <IndexRoute component={Login} /> 
       <Route path="login" component={Login}/> 
      </Route> 
      <Route path="/" component={App}> 

      </Route> 
     </Router> 
    </Provider> 
    , document.querySelector('.container') 
); 

Проблема заключается в каждый раз, когда я перейти к authenticate/login всегда говорят No input file specified.. Но если я перехожу к, он правильно работает

Любое решение?

+0

Проверьте, правильно ли вы импортировали компонент Authenticate, а также попытайтесь сменить browserHistory на hashHistory. –

+0

@ShubhamKhatri Я обновляю свой вопрос с помощью оператора импорта. благодаря – ssuhat

ответ

2

Привет, у меня была такая же проблема, и это решение, сработавшее для работы.

React-router на самом деле не создает настоящие страницы. Так что в моем случае мой скомпилированный JS был загружен в мой index.html, но если вы заходите в/login, например, он не загружает index.php и не дает 404.

Ошибка «Нет указанного файла ввода». обычно является ошибкой Ubuntu Ngnix.

Решение

Вы можете изменить свой Ngnix конфигурационный файл, добавив следующий код:

try_files $uri $uri/ /index.html$is_args$args; 

Он должен быть добавлен в серверном> место. Это мой конфигурационный файл выглядит так:

server { 
    listen 80; 
    listen 443 ssl; 
    server_name yourownurl.com; 
    root "/home/vagrant/path/to/your/site"; 

    index index.html index.htm index.php; 

    charset utf-8; 

    location/{ 
     try_files $uri $uri/ /index.html$is_args$args; 
    } 
} 

Надеюсь, это поможет некоторым людям выйти.

Смежные вопросы