簡體   English   中英

如何從Express路由提供腳本文件

[英]How to serve script file from Express route

我有一個js腳本,我想將其包含在html文件的src屬性中。 當我直接從本地路徑添加腳本時,它正在工作。

是否可以從快速路由返回文件路徑,並將該路由用作html中src的值? 這就是我要在html中包含我的快速路線的方式

<script src="http://localhost:2222/widget" type="text/javascript"></script>

Express服務器在端口2222上運行,並具有一些API。 現在在我的快速路線/小工具中

app.get("/widget", (req, res) => {
     res.send(path.join(__dirname + "/src/client/public/bundle.js"));
});

當我簡單地觸發localhost:2222 / widget時,從/ home /開始顯示正確的路徑。

我需要一些機制來將此js文件路徑用作src(如上所示)。

注意:我已經添加了所有cors,標頭等用於訪問控制。

使用res.sendFile()發送文件而不是路徑:

在給定path傳輸文件。 根據文件名的擴展名設置Content-Type響應HTTP標頭字段。 除非在options對象中設置了root選項,否則path必須是文件的絕對路徑。

因此,您的代碼變為:

app.get("/widget", (req, res) => {
     res.sendFile(path.join(__dirname, "/src/client/public/bundle.js"), err => console.log(err));
});

由於您使用的是path.join() ,因此可以用逗號分隔__dirname和相對路徑。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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