Javascript 如何使用node.js在html中包含静态文件
这不是关于express.static()的问题 我有一个应用程序,需要为多个具有相同js和css依赖关系的页面提供服务。因此,编写css和js包括在每个页面上使用Javascript 如何使用node.js在html中包含静态文件,javascript,php,html,css,node.js,Javascript,Php,Html,Css,Node.js,这不是关于express.static()的问题 我有一个应用程序,需要为多个具有相同js和css依赖关系的页面提供服务。因此,编写css和js包括在每个页面上使用或标记是不好的做法 我正在寻找一种类似于php include的方法。由于php将处理所有php代码并发送编译后的html,我认为节点服务器上的js也可以这样做 因此,服务器将执行如下操作: 从resources.html获取html 将html推到index.html上方 发送index.html 或者也许有其他的方法。有什么想法吗
或
标记是不好的做法
我正在寻找一种类似于php include的方法。由于php将处理所有php代码并发送编译后的html,我认为节点服务器上的js也可以这样做
因此,服务器将执行如下操作:
或者也许有其他的方法。有什么想法吗?您可以将布局与所选模板引擎一起使用,每个视图都可以扩展该布局。例如,如果您使用作为模板引擎 index.js
var express = require("express");
var app = express();
var port = process.env.PORT || 7080;
app.set('view engine', 'jade');
app.get('/', function (req, res) {
res.render('home');
});
app.listen(3000);
视图/布局。jade
doctype html
html
head
script(src='/javascripts/home.js')
link(rel='stylesheet', href='/stylesheets/style.css')
block title
title= "My Website"
body
.container
block content
extends ./layout.jade
block content
h1 Hello World!
视图/主页。jade
doctype html
html
head
script(src='/javascripts/home.js')
link(rel='stylesheet', href='/stylesheets/style.css')
block title
title= "My Website"
body
.container
block content
extends ./layout.jade
block content
h1 Hello World!
home.jade视图扩展布局并覆盖内容
块。访问http://localhost:3000/
返回以下内容:
<!DOCTYPE html>
<html>
<head>
<script src="/javascripts/home.js"></script>
<link rel="stylesheet" href="/stylesheets/style.css">
<title>My Website</title>
</head>
<body>
<div class="container"><h1>Hello World!</h1></div>
</body>
</html>
我的网站
你好,世界!
在根目录中公开一个文件夹
然后在main app.js/server.js中
添加以下行:-
`var express = require('express'),
bodyParser = require('body-parser'),
userRoutes = require('./routes/user'),
mongoose = require('mongoose');
var app = express();
mongoose.connect('mongodb://localhost/meanDemo');
app.use( bodyParser.json() ); // to support JSON-encoded bodies
app.use(bodyParser.urlencoded({ // to support URL-encoded bodies
extended: true
}));
app.use(express.static('public'));
app.engine('html', require('ejs').renderFile);
app.set('view engine', 'html');
app.use('/', userRoutes);
app.get('/',function(req, res){
res.render('userlist');
});
app.listen(3000);
console.log("sever started at 3000");
`
然后在视图中使用
/*filename
作为/将作为您的公共目录为什么不将其包含在index.html中?我得到了模板引擎的概念,但它使简单的事情变得更加复杂。谢谢你的回答。顺便说一下:)不幸的是,Node不像PHP那样工作,所以我认为这是你最好的选择。如果有人有别的选择,我会感兴趣的。是的,很不幸。我使用的是express,它提供sendFile选项,但不允许在发送文件之前动态修改文件。但我发现ejs在所有模板引擎中只比这个功能好一点。