簡體   English   中英

NodeJS使用Express.js提供靜態內容的困難

[英]NodeJS difficulty serving static content with Express.js

我在Windows 10開發計算機上運行了一個簡單的NodeJS和Express服務器

var express = require('express');
var app = express();

app.use(express.static('app'));
app.use('/bower_components', express.static('bower_components'));

app.listen(3000, function () {
    console.log("Listening on :3000");
});

這是可行的,但是當我嘗試將其上傳到Linux(Ubuntu 14.04)盒中時,僅提供/app下直接存在的文件,而子文件夾中沒有任何文件。

在linux機器上,我注意到我正在運行節點版本v0.10所以我更新到v4.5.0 我的Windows機器運行v4.4.4

我有一個想法,可能與權限有關,所以我嘗試設置這些權限,但無濟於事。

文件結構如下所示

├───api
├───app
│   ├───assets
│   │   ├───css
│   │   └───images
│   └───scripts
│       ├───auth
│       ├───directives
│       ├───filters
│       ├───home
│       ├───i18n
│       └───services
├───bower_components

有人遇到過同樣的問題嗎?

我認為您將所有內容都放在文件中很好,所以唯一的問題是,對於nodeJS服務,如果您未指定路徑,可能會很痛苦。

https://expressjs.com/cn/starter/static-files.html

如果您執行app.use(express.static('app')); dierectory app被注入到/目錄(或在極端情況下,安裝到nodeJs安裝的執行文件夾)。 我唯一想到的就是在express.static之前添加__dirname + '/app'app.use(__dirname + '/app', express.static('app'));

__dirname是模塊范圍內的一個nodeJS變量,其中包含當前正在執行的腳本所在的目錄的名稱


如果那改變了,請嘗試匹配所有內容: __dirname和node.js中的./有什么區別?

暫無
暫無

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

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