Javascript 如何使用node.js在html中包含静态文件

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 或者也许有其他的方法。有什么想法吗

这不是关于express.static()的问题

我有一个应用程序,需要为多个具有相同js和css依赖关系的页面提供服务。因此,编写css和js包括在每个页面上使用
标记是不好的做法

我正在寻找一种类似于php include的方法。由于php将处理所有php代码并发送编译后的html,我认为节点服务器上的js也可以这样做

因此,服务器将执行如下操作:

  • 从resources.html获取html
  • 将html推到index.html上方
  • 发送index.html

  • 或者也许有其他的方法。有什么想法吗?

    您可以将布局与所选模板引擎一起使用,每个视图都可以扩展该布局。例如,如果您使用作为模板引擎

    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在所有模板引擎中只比这个功能好一点。