expression不引导引导

我刚刚开始使用Express,我试图弄清楚为什么,当我运行我的应用程序时,Bootstrap字体没有呈现(它以简单的Times New Roman显示文本)。 我很确定我正在使用正确的path,因为当我在我的浏览器中打开我的index.html字体正确呈现。 我也尝试过使用Bootstrap导航栏,当我尝试通过Node运行Bootstrap时,Bootstrap似乎不能正常工作,但当我在浏览器中单独查看HTML文件时,Bootstrap再次正常工作。 将Bootstrap目录的path更改为“/ public / bootstrap …”导致它不能正确显示。 我该如何解决?

index.html的:

<html> <head> <title>X</title> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link href="../public/bootstrap/css/bootstrap.min.css" type="text/css" rel="stylesheet" media="screen"> </head> <body> <script src="http://code.jquery.com/jquery.js"></script> <script src="js/bootstrap.min.js"></script> <div class="container"> <h1>Under Construction</h1> <p>This website is under construction. Come back soon!</p> </div> </body> </html> 

web.js(我的主要应用程序文件):

 var express = require('express') var app = express() app.set('view engine', 'ejs') app.engine('html', require('ejs').renderFile) app.get('/', function(req, res) { res.render('index.html') }) var port = process.env.PORT || 5000; app.listen(port, function() { console.log("Listening on " + port); }) 

1)引导和expression无关。 Bootstrap完全在客户端运行,express是一个在node.js上的服务器中间件库

2)你为什么自己提供bootstrap? 更好地使用CDN:

  1. http://www.bootstrapcdn.com
  2. http://hostedbootstrap.com/

3)如果你坚持自己提供服务,请添加一个静态目录,这样express可以提供静态文件(当你尝试为你的服务提供js / css服务时,添加一个静态的服务也会为你提供服务,但是仍然希望从CDN服务于引导服务。

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

那么不需要使用公共的,只需要使用你的css的根path即可:

 bootstrap/css/bootstrap.min.css ie <link href="../public/bootstrap/css/bootstrap.min.css" type="text/css" rel="stylesheet" media="screen" 
  1. 您需要一个实际的静态中间件。 Express本身默认不做任何事情。

    app.use(express.static(__ dirname +“/ public”));

  2. 不要在HTML中的path中使用“public”。 这是静态资产所在的目录,但从浏览器的angular度来看,这是根。 也不要使用相对path

  <link href="/bootstrap/css/bootstrap.min.css" type="text/css" rel="stylesheet" media="screen">