2016-09-08 3 views
-1

Я использую маршрутизатор реагируют с этими маршрутами:React маршрутизатор не возвращает динамический путь

let routes = [{ 
    path : homePath, 
    component : Layout, 
    indexRoute: { component : Home }, 
    childRoutes : [ 
    { 
     path : "translations", 
     component : Translation, 
    }, 
    { 
     path : "articles", 
     component : Articles, 
    },{ 
     path : "article/:id", 
     component : Article, 
    }, 
    { 
     path : "contact", 
     component : Contact, 
    }, 
    ], 
}]; 
ReactDOM.render(
    <Router routes = {routes} history = {rRouter.browserHistory}> 
    </Router> 
    ,app); 

Компоненты:

class Articles extends React.Component{ 
    render(){ 
    return(
     <h1>Articles</h1> 
    ); 
    } 
} 
class Article extends React.Component{ 
    render(){ 
    console.log(this.props); 
    return(
     <h1>Article</h1> 
    ); 
    } 
} 

index.html:

<!DOCTYPE html> 
<html> 
    <head> 
    <meta charset="utf-8"> 
    <meta name=viewport content="width=device-width, initial-scale=1, maximum-scale=1"> 
    <title>HYassin</title> 
    <link href='https://fonts.googleapis.com/css?family=Raleway' rel='stylesheet' type='text/css'/> 
    <link href='http://yui.yahooapis.com/pure/0.6.0/pure-min.css' rel='stylesheet' type='text/css'/> 
    <link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.6.3/css/font-awesome.min.css" rel="stylesheet" type="text/css"/> 
    <link href="http://localhost/Hyassin/src/css/main.css" rel="stylesheet" type="text/css"/> 
    <!-- React stuff --> 
    <script src = "https://cdnjs.cloudflare.com/ajax/libs/react/15.3.1/react.js"></script> 
    <script src = "https://cdnjs.cloudflare.com/ajax/libs/react/15.3.1/react-dom.min.js"></script> 
    <script src = "https://cdnjs.cloudflare.com/ajax/libs/react-router/2.7.0/ReactRouter.js"></script> 
    <script src = "https://cdnjs.cloudflare.com/ajax/libs/superagent/2.2.0/superagent.js"></script> 
    <script src = "https://unpkg.com/[email protected]/lib/mobx.umd.js"></script> 
    <script src='https://www.google.com/recaptcha/api.js'></script> 
</head> 

    <body> 
    <div id = "webapp"></div> 
    <script src = "./src/js/bundle.js"></script> 
    </body> 
</html> 

.htaccess

RewriteEngine On 
    RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -f [OR] 
    RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -d 
    RewriteRule^- [L] 
    RewriteRule^/index.php [L] 

Если я пытаюсь перейти на путь localhost/articles, он работает нормально, однако, если я пытаюсь использовать localhost/article/1, он дает мне следующую ошибку: Uncaught SyntaxError: Unexpected token <. Компоненты и маршруты находятся в одном файле js. Что может быть причиной этой ошибки? Спасибо за ваше время.

+0

Похоже, что-то ждет Javascript, но получая HTML - проверьте вкладку сети –

+0

вы можете предоставить экспресс-маршруты и index.html –

+0

Установили ли вы резерв URL-адресов на своем сервере разработки? Вы обслуживаете свой 'index.html' даже при попытке получить доступ к неизвестному маршруту на вашем сервере разработки? –

ответ

0

Оказывается, что проблема была вызвана тем, как я включал мой сценарий file.Instead из src = "/src/js/bundle.js" я должен был перейти к src ="http://localhost/src/js/bundle.js"

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