![](/img/trans.png)
[英]express.static() not serving files from public folders in router paths that are not "/"
[英]Serving static files with express for non-root paths
我正在使用 express 來提供 React 應用程序(使用 Create React App 引導)。 該項目具有以下文件結構:
|--client/
| |--build/
| | |--static/
| | | |--main.css
| | | |--main.js
| | |
| | |--index.html
| |
| |--public/
| |--src/
|
|--server/
|--index.js
build 文件夾包含所有靜態文件,我想從非根 url 提供它們。 快遞服務器配置:
app.use('/some_path', express.static(path.resolve(__dirname,'../client/build')));
在我的 index.html 中,我最初有 .css 和 .js 文件,其中href='/static/main.css
和src='/static/main.js
不起作用(404 錯誤),因為我相信服務器會嘗試在/some_path/static/
下查找文件,但找不到它們。
當我嘗試將 index.html 中的路徑更改為href='/some_path/static/main.css
,我獲得了所有請求文件的 200 個狀態(發送的文件與原始文件匹配),但頁面上沒有呈現任何內容。 檢查 html 頁面在正文中顯示:
<div id="root">
<!-- React empty: 1 -->
</div>
知道我在這里做錯了什么嗎? 在使用 React Create App 時,有什么我遺漏的簡單東西或需要配置的東西嗎?
https://expressjs.com/en/starter/static-files.html
醫生已經說過以下內容:
要為 express.static 函數提供的文件創建虛擬路徑前綴(該路徑在文件系統中實際上不存在),請為靜態目錄指定掛載路徑,如下所示:
app.use('/static', express.static('public'))
例如:有如下路徑:
https://localhost:port/product/new
使用文件夾“public”中的所有 .JS 和 .CSS 文件,通常,Express 將返回無法加載 .JS 和 .CSS 文件的錯誤。 我們只需要包含以下行:
app.use('/product', express.static('public'))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.