我已经在app.js中将我的静态文件夹设置为public(在我的app文件夹的根目录中) 但是在链接css文件时仍然是把手布局文件,找不到公用文件夹中的文件。
// app.js code:
// init app
var app = express();
// view engine
app.set('views',path.join(__dirname,'views'));
app.set('view engine','handlebars');
app.engine('handlebars',expressHandlebars({defaultLayout:'layout'}));
// middleware
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended:false}));
app.use(cookieParser());
// set static folder
app.set(express.static(path.join(__dirname,'public')));
handlebars layout file:
<link rel="stylesheet" type="text/css" href="css/bootstrap.min.css"/>
答案 0 :(得分:3)
首先,您必须在评论中使用robertklep中提到的绝对路径。
现在问题是,您使用app.set
来解决问题,您必须使用.use
方法而不是.set
。
现在关于如何构建目录,我建议指定一个像'/ public'这样的目录路径来访问公共文件。可以这样做:
//app.use not .set
app.use('/public', express.static(path.join(__dirname,'public')));
//see the first argument in above line it assigns which directory path is used to access the public file through URL
完成此操作后,您可以访问所需的文件,如下所示:
<link rel="stylesheet" type="text/css" href="/public/css/bootstrap.min.css"/>