我從這個優秀的教程開始: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
:
app.route('/')
.get(function (req, res) {
res.sendFile(bipath.join(__dirname, '../public', 'THISCANBEANYRANDOMFILENAME.html'))
});
它不事關因爲是的WebPack莫名其妙指導localhost:3000
反正index.html的。在哪裏以及如何做到這一點?底線我想修改我的路線來服務一個新的HTML文件,並正在到各種各樣的文件路徑問題(是的,甚至當我使用require('path')
或sendFile(...,{root: __dirname})
)
那麼究竟是怎麼回事,並可以爲您給我任何提示來幫助我?
編輯:這可能來自babel以及webpack - 我不完全清楚babel在哪裏和webpack的啓動位置。
這裏是github上的文件,如果你需要更多的信息:https://github.com/sw-yx/fcc-nightlife – swyx
所有Babel做的是transpile。我不明白你爲什麼認爲觸及根端點並不符合要求 - 這就是我們所談論的index.html,不是嗎? –
是的。我可以向自己證明,擊中根端點並不會擊中路徑,因爲我故意編輯sendFile以發送不存在的文件 - 上面屏幕截圖中的「indextest.html」,並且當我在瀏覽器中打開它時,仍然服務於INDEX.HTML 。所以它顯然被webpack dev服務器攔截了。什麼是黑魔法,我甚至都沒有看到任何webpack dev服務器配置(我發佈了github),所以我不知道它是如何做這個攔截的。 – swyx