【質問】
<base href='/' />に使うことでサイト内リンクアクセスがおかしくなる副作用の解決策を教えて下さい。 【詳細】 <base href='/' />をindex.htmlの<head>につけることで、/○○/123に アクセスできるようになりましたが、ユーザがindex.htmlに相当するトップページではなく、 例えば個別の、/○○/123に「URL直打ち」でアクセスした後に、サイト内リンク/□□/567をクリックすると、通常URLは、/□□/567になる筈ですが、これが、/○○/123/□□/567となってしまいます。 【<base href='/' />を使うに至った経緯】 react-router-domの<Link to='/○○/□□/098' component=・・・ />のようだとcssとimageが上手く表示されません。 正確に言いますと、/○○ならばアクセスできますが、/○○/□□のように入れ子・ネストすると正しく表示されません。 調べてみてnginxのsendfile offにすると解決するような記述を見つけてやりましたが結果は変わりませんでした。 以下リンク先で、<base href='/' />を設定すると解決するとの技術を目にしましたのでそのとおりにやってみると、/○○/□□でも正しく表示することができました。 https://teratail.com/questions/26245 【設定について】 【nginx.conf】 ``` location / { root /・・・; index index.html index.htm; try_files $uri $uri/ /index.html; ``` 【index.html】 ``` <head><base href='/' /></head> ・・・ <script src='/・・・/bundle.js'></script> ``` 【○○.jsx】 ``` ReactDOM.render( <Provider store={store}> <BrowserRouter> <Switch> ・・・ <Roue path='/・・・/:id' component={・・・} /> ・・・ </Switch> </BrowserRouter> </Provider> ``` 【nginx rewriteか、<base href='/' />のどちらがよいのか?】 私が試したのは、<base href='/' /> nginxのrewireを設定する記述も見かけましたが、設定が上手く行きませんでしたので戻しました。 本来、nginx rewriteか、<base href='/' />のどちらで設定するのがよいのでしょうか? 又、本件の問題解決が出来る、nginx.confの正しい設定についても教えて頂ければ幸甚です。 【nginx.conf】 ``` location / { root /・・・; index index.html index.htm; try_files $uri $uri/ /index.html rewrite ^/(.*)/(.+)$ /$1 break; } ```以上、上記質問に係る解決策がお分かりでしたらご教示頂ければ幸甚です。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/03/04 03:56
2018/03/04 03:59
2018/03/05 17:51 編集
2018/03/05 17:51
2018/03/05 22:28
2018/03/05 22:30
2018/03/08 16:36 編集