node express没有获取bootstrap.js文件

时间:2016-02-26 11:01:53

标签: javascript node.js mongodb express extjs

我有一个目录结构:

projectName
    | -.sencha/
    | - app/
        | - view
        | - controller
        | - store
    | - saas
    | - server/
        | -server.js
    | - index.html
    | - bootstrap.js
    | - app.js

I would like to start my app and serve index.html with node. So in server/server.js I have:

app.get('/', function(req, res) {
  res.sendFile('index.html', { root: path.join(__dirname, '../') });
})

And this is working fine but after this my localhost throwing an error bootstrap.js is not found.

的index.html

    <!DOCTYPE HTML>
    <html manifest="">
    <head>
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta charset="UTF-8">

        <title>serverApp</title>

        <!-- The line below must be kept intact for Sencha Cmd to build your application -->
        <script id="microloader" type="text/javascript" src="bootstrap.js"></script>

    </head>
    <body></body>
    </html>

那么你能告诉我如何解决这个问题吗? 或者你能为我提供一个很好的链接示例,它是在extjs,express,nodejs,mongodb中开发的。

2 个答案:

答案 0 :(得分:1)

您应该重写一下文件结构以提供静态文件:

将此行添加到server.js以提供public文件夹中的静态文件:

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

将文件结构修改为:

projectName
    | -.sencha/
    | - app/
        | - view
        | - controller
        | - store
    | - saas
    | - server/
        | -server.js
    | - public/
        | - index.html
        | - bootstrap.js
        | - app.js

更多信息:http://expressjs.com/en/starter/static-files.html

答案 1 :(得分:1)

我100%同意这个@Adam!此外,您应该将您的公共文件夹解析为绝对路径,这不是必须的,而是准则,以便我们不会受到打击......;)

您应该按@Adam建议重新构建您的应用,再加上

执行以下操作,它将以良好的指导方针解决您的问题。

var express = require('express');
var path = require('path');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');

var app = express();


 app.use(bodyParser.json());
 app.use(bodyParser.urlencoded({ extended: false }));
 app.use(cookieParser());



//This will enable you to access it form '/'
app.use('/', express.static(__dirname + '/public', {index: "index.html"}));

// Rest of the stuff

然后,如果您将访问您设置和移植的网址,则可以访问。

建议使用express.static来提供静态内容。

希望它有所帮助!