私はこの優れたチュートリアル:https://www.fullstackreact.com/articles/using-create-react-app-with-a-server/から出発し、新しいルートを提供するために新しいページを追加することでそれを拡張しようとしています。しかし、周りいじくるの時間後、私は何とか作成反応するアプリはいくつかの奇妙なマジックをやっていることを実現しています(mentioned in their docs hereとして):Webpackは何とかエクスプレスルーティングを完全にバイパスします
`create-react-app` configures a Webpack development server to run on `localhost:3000`.
This development server will bundle all static assets located under `client/src/`.
All requests to `localhost:3000` will serve `client/index.html` which will include Webpack's `bundle.js`.
キーの引用は「localhost:3000
へのすべてのリクエストはclient/index.html
にサービスを提供します」です。私はこれがどうなるか分かりません。だから、でも周りroutes/index.js
と私の混乱にもかかわらず:WebPACKのは何とかとにかくindex.htmlをするlocalhost:3000
を指示されているので、それは問題doesntの
app.route('/')
.get(function (req, res) {
res.sendFile(bipath.join(__dirname, '../public', 'THISCANBEANYRANDOMFILENAME.html'))
});
。どこでどのようにこれをやっているのですか?結論新しいhtmlファイルを提供するために私のルートを修正しようとしており、あらゆる種類のファイルパスの問題に遭遇しています(require('path')
またはsendFile(...,{root: __dirname})
を使用しても)
ここでは正確に何が起こっていますか私を助けるためのヒントを教えてください。
編集:これは、babelとwebpackからのものである可能性があります。
さらに詳しい情報が必要な場合は、githubのファイルをご覧ください。https://github.com/sw-yx/fcc-nightlife – swyx
Babelはすべて透過的です。私はルートエンドポイントを打つことがパスに当たっていないと思う理由を理解していません。それは、私たちが話している 'index.html'ですね。 –
はい。上記のスクリーンショットで「indextest.html」という存在しないファイルを送信するようにsendFileを意図的に編集したため、ルートエンドポイントに当たってもパスがヒットしないことを自分自身に証明することができます。ブラウザでヒットすると、INDEX.HTML 。だから、明らかにwebpack dev serverによってどこかで傍受されていました。黒い魔法とは何ですか?私はどこのwebpack devサーバーの設定でも表示されません(私はgithubを投稿しました)ので、私はどのようにこの傍受を行っているのか分かりません。 – swyx