node呈现的ejs文件可以离线使用吗bootstrap?
Can node presented ejs files use offline bootstrap?
我是节点和全栈开发的新手,希望我能正确地提出这个问题,而不是因为您的特定理解水平而粗心或冒犯。
我的开发环境已连接 Internet,生产环境不会,我想将 bootstrap.css 与节点一起使用。 Apache/httpd 不是生产中的选项。
在本地测试 bootstrap 具有挑战性,css 文件的正确目录被认为是正确的。
CENTOS 7 上的主目录是 myapp,包含 app0.js,带有 espress 和 body-parser 以及所有依赖项的 node_modules,以及包含 grid.ejs 的 views 目录。
我的应用程序/
app0.js
node_modules
意见/
grid.ejs
public/
bootstrap.css
这里是 grid.html(适用于 apache):
<!DOCTYPE html>
<html>
<head>
<title>Bootstrap Grid Test</title>
<link rel="stylesheet" type="text/css" href="bootstrap.css">
<style type="text/css">
.pink {
background: yellow;
border: 3px solid red;
</style>
</head>
<body>
<div class="row">
<div class="col-lg-2 pink"><center>2 columns </center></div>
<div class="col-lg-7 pink"><center>7 columns </center></div>
<div class="col-lg-3 pink"><center>3 columns </center></div>
</div>
</body>
</html>
这是 apache 为 grid.html 显示的内容:
https://imgur.com/VanVZJn "bootstrap with httpd"
然而app0.js没有!
所以 bootstrap.css 在 Internet 上引用时有效 (1) - 我无法在生产中使用它 (2) 在我的开发环境中通过 http 代码从 httpd
但不是来自 ejs 文件。
注意:我可以从节点访问 bootstrap,因为从启动节点的终端显示无法访问时会出现 404 错误。在尝试理解这一点至少 12 小时后,我被难住了。遗憾的是,解决方案的时间表很短,我求助于各位优秀的读者!
App0.js
//设置
var express = require('express'),
app = express(),
bodyParser = require('body-parser')
app.set('view engine','ejs');
app.use(bodyParser.urlencoded({ extended: false }))
app.use(bodyParser.json())
app.get("/grid", function(req, res, next){
res.render("grid")
});
app.listen(3000,function(){
console.log("serving test demo on port 3000")
});
views/grid.ejs
<!DOCTYPE html>
<html>
<head>
<title>Bootstrap Grid System</title>
<meta charset="UTF-8">
<link rel="stylesheet" type="text/css" href="public/bootstrap.css">
<style type="text/css">
.pink {
background: yellow;
border: 3px solid red;
}
</style>
</head>
<body>
<div class="row">
<div class="col-lg-2 pink"><center>2</center></div>
<div class="col-lg-7 pink"><center>7</center></div>
<div class="col-lg-7 pink"><center>3</center></div>
</div>
</body>
</html>
此处显示:
https://imgur.com/ZLOgZKT "bootstrap not working"
您必须在 app0.js 文件中定义要提供静态文件的 public
路径。尝试以下需要 path
模块并在 bodyParser.json()
之后使用 express.static
的 app0.js 文件:
var express = require('express'),
app = express(),
bodyParser = require('body-parser'),
path = require('path')
app.set('view engine','ejs');
app.use(bodyParser.urlencoded({ extended: false }))
app.use(bodyParser.json())
app.use(express.static(path.join(__dirname, 'public')));
app.get("/grid", function(req, res, next){
res.render("grid")
});
app.listen(3000,function(){
console.log("serving test demo on port 3000")
});
你的 grid.ejs 文件 link bootstrap 文件是这样的:
<link rel="stylesheet" type="text/css" href="/bootstrap.css">
我是节点和全栈开发的新手,希望我能正确地提出这个问题,而不是因为您的特定理解水平而粗心或冒犯。
我的开发环境已连接 Internet,生产环境不会,我想将 bootstrap.css 与节点一起使用。 Apache/httpd 不是生产中的选项。
在本地测试 bootstrap 具有挑战性,css 文件的正确目录被认为是正确的。
CENTOS 7 上的主目录是 myapp,包含 app0.js,带有 espress 和 body-parser 以及所有依赖项的 node_modules,以及包含 grid.ejs 的 views 目录。
我的应用程序/ app0.js node_modules 意见/ grid.ejs public/ bootstrap.css
这里是 grid.html(适用于 apache):
<!DOCTYPE html>
<html>
<head>
<title>Bootstrap Grid Test</title>
<link rel="stylesheet" type="text/css" href="bootstrap.css">
<style type="text/css">
.pink {
background: yellow;
border: 3px solid red;
</style>
</head>
<body>
<div class="row">
<div class="col-lg-2 pink"><center>2 columns </center></div>
<div class="col-lg-7 pink"><center>7 columns </center></div>
<div class="col-lg-3 pink"><center>3 columns </center></div>
</div>
</body>
</html>
这是 apache 为 grid.html 显示的内容:
https://imgur.com/VanVZJn "bootstrap with httpd"
然而app0.js没有!
所以 bootstrap.css 在 Internet 上引用时有效 (1) - 我无法在生产中使用它 (2) 在我的开发环境中通过 http 代码从 httpd 但不是来自 ejs 文件。
注意:我可以从节点访问 bootstrap,因为从启动节点的终端显示无法访问时会出现 404 错误。在尝试理解这一点至少 12 小时后,我被难住了。遗憾的是,解决方案的时间表很短,我求助于各位优秀的读者!
App0.js //设置
var express = require('express'),
app = express(),
bodyParser = require('body-parser')
app.set('view engine','ejs');
app.use(bodyParser.urlencoded({ extended: false }))
app.use(bodyParser.json())
app.get("/grid", function(req, res, next){
res.render("grid")
});
app.listen(3000,function(){
console.log("serving test demo on port 3000")
});
views/grid.ejs
<!DOCTYPE html>
<html>
<head>
<title>Bootstrap Grid System</title>
<meta charset="UTF-8">
<link rel="stylesheet" type="text/css" href="public/bootstrap.css">
<style type="text/css">
.pink {
background: yellow;
border: 3px solid red;
}
</style>
</head>
<body>
<div class="row">
<div class="col-lg-2 pink"><center>2</center></div>
<div class="col-lg-7 pink"><center>7</center></div>
<div class="col-lg-7 pink"><center>3</center></div>
</div>
</body>
</html>
此处显示:
https://imgur.com/ZLOgZKT "bootstrap not working"
您必须在 app0.js 文件中定义要提供静态文件的 public
路径。尝试以下需要 path
模块并在 bodyParser.json()
之后使用 express.static
的 app0.js 文件:
var express = require('express'),
app = express(),
bodyParser = require('body-parser'),
path = require('path')
app.set('view engine','ejs');
app.use(bodyParser.urlencoded({ extended: false }))
app.use(bodyParser.json())
app.use(express.static(path.join(__dirname, 'public')));
app.get("/grid", function(req, res, next){
res.render("grid")
});
app.listen(3000,function(){
console.log("serving test demo on port 3000")
});
你的 grid.ejs 文件 link bootstrap 文件是这样的:
<link rel="stylesheet" type="text/css" href="/bootstrap.css">