日記: SPAでリロードしたら404になる問題, その他
あ〜〜何も考えずにSPAをnginxで配信させるとルート以外にアクセスされたら404になる
— はぜ (@haze_it_ac) 2018年11月13日
アクセスされたパス先のファイルが存在しなかったらindex.htmlに投げる設定がいるのね
— はぜ (@haze_it_ac) 2018年11月13日
トップページ以外でリロードしたら404になる現象が起きて、ちょっと考えたら、まあそうだよなってことですぐ解決した。
/works
にダイレクトアクセスしたときに、それに対応するファイルが存在しないとindex.htmlに届かずにnginxに404で弾かれる。
冷静に考えたら当たり前だけど、react-routerが勝手にやってくれるやろって思って考えてなかった。
その手前で死ぬのか。なるほどな〜ってなった。
トップ( /
、 index.html
)のリンクを踏んで /works
に遷移するとreact-routerがルーティングしてくれて、index.htmlの div = root
のまま更新する分のコンポーネントだけ再描画してくれるから問題が起きなくて、リロードだけ問題になる。この説明であっているかはわからない。。。
ちなみに、create-react-appで作っている途中だと、 webpackDevServer.config.js
にhistory api foolbackの設定が書かれていて気付かない。nginxもかまさないし。
[nginx.conf] ... location / { try_files $uri $uri/ /index.html; } ....
try_filesは、最初の引数から順番にパスに合致したファイルが存在するかを確認するやつで、
$uri
はそのまんまURL, $url
はURLに /
を追加したもの
それらが存在しなかったら、 rootdir/index.html
を探しに行くっていう流れになる。(当然そのindex.htmlもなかったら404になる)
この辺の設定、あんまりちゃんと理解せずに適当にコピペしたりしていたけどそろそろちゃんと中身理解しておかないと変なところで躓きそう。気をつけよう。
若手エンジニアイベントで雑にLTした。LTすることを2日前まで忘れていて急いで資料を作ったら、7分の発表なのに30枚オーバーとかになって頑張って削った。
なぜか偶然前職の人がいたり、若手(なのに)でPerlを書いたことがある人が多かったり、色々あって面白かった。
「ちゃんと」理解している技術が何もなくて頭抱えてる、ずっと雰囲気でコードを書いてきた ツケが回ってきている
— はぜ (@haze_it_ac) 2018年11月12日
アーキテクチャパターンとそれをコードに落とす、フレームワーク、言語仕様、諸々が弱すぎる…
— はぜ (@haze_it_ac) 2018年11月12日
市場価値と自分の技術に対する興味 - はぜにっき
前の記事にも書いたけど、大きな技術特化のイベントとかで話せるようなぐらい専門的な知識をつけたいなあって一瞬思ったりした。
でもその前に、仕事にも影響が出ている設計周りの知識と実感(?)の無さ、頭のついていかなさをなんとかしないといけないなーっていう気持ち
がんばろう