2016-04-12 8 views
1

iOS 7(SafariとChrome)では、すべてのルートが空白のページをレンダリングします(おそらく、次のマークアップが実際にコンセントにレンダリングされるためです)。なぜ `生産 'にコンパイルされたルータベースのアプリがiOS 7では何も表示できないが、devが動作するのはなぜですか?

<div id="outlet"><noscript data-reactid=".15lgpv00t8g"></noscript></div> 

これは、ビルドがNODE_ENV=productionでコンパイルされている場合に発生します。私がそれを残してdevelopmentをビルドすると、ルートは必要に応じてレンダリングされます。

productionビルドで返さ一切のコンソールエラーはありません - ちょうどそれが何をレンダリングしていないので、ルータはすべてのコンポーネントに一致しない反応することを思えます。

どこから探し始めるのかはわかりません。古いiOSがHTML5の履歴を適切にサポートしていないという疑いがありました。私はいくつかの古い歴史を発見し、これらの線に沿ってルータの問題が反応するが、彼らは、iOSクロム(https://github.com/reactjs/react-router/issues/2565https://github.com/mjackson/history/pull/146)に特異的であるようでした。

また、ハッシュ履歴を使用してみましたが、同じ空白の画面の問題が発生したため、実際には履歴に関連していないことが示唆されています。

これは罰金構築dev内に動作しているので、私は、任意のコードスニペットが役に立つが、いくつかのラウンドトリップを保存するには、ここにいることではないことを感じ、とにかく、いくつかの(かなり標準のもの)です。

// index.js 
import React from 'react' 
import ReactDOM from 'react-dom' 
import { Router, browserHistory } from 'react-router' 
import routes from './routes' 

if (typeof document !== 'undefined') { 
    const outlet = document.getElementById('outlet') 

    ReactDOM.render(<Router history={browserHistory} onUpdate={() => window.scrollTo(0, 0)} routes={routes} />, outlet) 
} 

// routes.js 
import React from 'react' 
import { Route, IndexRoute } from 'react-router' 
import App from './containers/App' 
import NotFoundPage from './containers/NotFoundPage' 
import HomePage from './containers/HomePage' 
import SignupPage from './containers/SignupPage' 
import LoginPage from './containers/LoginPage' 
import ChangePasswordPage from './containers/ChangePasswordPage' 
import LogoutPage from './containers/LogoutPage' 

export default (
    <Route path="/" component={App}> 
    <IndexRoute component={HomePage} /> 
    <Route path="signup/" component={SignupPage} /> 
    <Route path="login/" component={LoginPage} /> 
    <Route path="change-password/" component={ChangePasswordPage} /> 
    <Route path="logout/" component={LogoutPage} /> 
    <Route path="*" component={NotFoundPage} /> 
    </Route> 
) 

これを引き起こすのが間違っている可能性がありますか、おそらく履歴/反応ルータのバグでしょうか?空白の画面の原因となるものをデバッグするのに役立つことは何ですか?

は、私は私の次のステップは、試してみて、問題を複製し、最小限のアプリを作成するANのリンクを提供するだろうと思われるが、私はその道を下って行く前に手を差し伸べたいと思いました。

バージョン:

  • のiOS:7.0
  • が反応:v15.0.1
  • は、ルータに反応:v2.0.1の
  • バベル:
    • "バベル・コア":「^ 6.5.1 "、
    • " babel-loader ":"^6.2.2 "、
    • " bab 「^ 6.5.0」、「^ 6.5.0」、
    • 「babel-plugin-transform-react-inline-elements」:「^ 6.5.0」、
    • 「babel- 「^ 6.5.0」、「^ 6.5.0」、「^ 6.5.0」、
    • 「バベルプリセット反応」:「^ 6.5.0」、
    • 「バベルプリセット段階0」:「^ 6.5.0」、
+0

この問題を解決する方法はありますか? –

+1

sebastian_k私はこれを確認していませんが、今はバベルpolyfillがなくなっていて、エントリーポイントの始めにインポートが行方不明だったと思われます。 – Jonathan

+1

返信いただきありがとうございます!記録のために、私の場合、問題はSafariが[polyfillを取得する](https://github.com/github/fetch)を必要としていたので、まったく同じ問題ではなく、互換性の問題です。 –

答えて

0

パスを正しくフォーマットしていない可能性があります。 signup/の代わりに/signupのようにフォーマットしてみてください。

(パスを使用する形式に変更すると、ランタイムエラーが発生します)

関連する問題