如何让NPM Express指向index.html,bundle.js和嵌套的css文件

时间:2017-07-15 08:57:30

标签: node.js express

我有一个index.html指向我的bundle.js和多个css文件(css文件在多个嵌套目录中,例如我自己的css文件在/ css /中,而bootrap css文件在css / bootsrap /中目录

dirname/server.js
dirname/public/index.html
dirname/public/bundle.js
dirname/css/file1.css
dirname/css/file2.css
dirname/css/bootstrap/file3.css

等 我试图使用npm / express运行一些中间件并伪造一些我从服务器端获取的虚拟数据。这意味着我不再依赖服务器让我继续开发工作。我的server.js文件如下:

require('babel-register');
require('./server.babel');

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

app.use(express.static(path.join(__dirname, 'public')));
app.use(express.static(path.join(__dirname, 'css')));

app.get('/', function(req, res) {
    res.sendFile('index.html');
});

app.listen(8090, function(){console.log('Listening on port 8090...');});`

运行nodemon后,我无法显示我的页面。我能得到一些建议吗? 我无法真正移动文件,我会坚持他们的安排。

3 个答案:

答案 0 :(得分:1)

我假设您的HTML包含/css/file1.css之类的内容来引用CSS文件。根据您当前的配置,网址应为/file1.css,因为您将__dirname/css映射到根路径(/)。

相反,您希望将其映射到/css

app.use('/css', express.static(path.join(__dirname, 'css')));

这会将请求映射到/css/some/file到路径__dirname/css/some/file

对于bundle.js,其网址为/bundle.js(因为public目录已映射到/)。

从我所看到的情况来看,/不需要单独的路线,因为如果express.static() index.html将使用public//})请求。

答案 1 :(得分:0)

    window.setInterval(function(){
    if(markerArr.length>0)
    {
    //iterate through array
    }
}, 30000);

......应该解决它。

答案 2 :(得分:0)

require('babel-register');
require('./server.babel');

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

app.use(express.static(path.join(__dirname, 'public')));
// app.use(express.static(path.join(__dirname, 'css')));

//app.get('/', function(req, res) {
//   res.sendFile('index.html');
//});

app.listen(8090, function(){console.log('Listening on port 8090...');});`

为什么你不使用这个代码根据我你覆盖静态表达式,因为你给了public的路径它将指向你的index.html它自己不需要为此编写get函数你可以指向从您的索引到您的CSS。如果您还有任何疑问,请告诉我。 只需启动您的服务器并调用requestindex.html即可。