簡體   English   中英

使用 express 為非根路徑提供靜態文件

[英]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.csssrc='/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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM