繁体   English   中英

如何让node.js服务器也发送js文件?

[英]How to make the node.js server also send js files?

我有一个运行的node.js文件服务器(当访问时)返回一个html内容。 同样在node.js文件的同一目录中,有一个名为test.js的javascript文件。 另外在返回的html内容中,我需要加载该javascript文件。 但是在html内容中,返回后出来的名称为index.html ,脚本看起来像

<script type="text/javascript" src="test.js"></script>

但是服务器没有发送test.js文件,它只发送index.html文件,而脚本链接是从相同的目录中相对加载的。

现在我不想将url提供给test.js文件。 我希望node.js文件也发送test.js文件,以便它最终与index.html在同一目录中。 然后index.html可以从同一目录加载它。

有没有一种方法我可以在node.js指定代码来发送test.js文件?

谢谢。

你是否熟悉Express,就像dandavis所说的那样? Express允许您为静态文件设置目录。 请参阅下面的标准配置:

app
  .use('view engine', jade)
  .use(express.compress())
  .use(express.limit('10mb'))
  .use(express.bodyParser())
  .use(app.router)
  .use(stylus.middleware({
     src: __dirname + '/www',
     compile: function(str, path) {
          return stylus(str)
              .set('filename', path)
              .set('compress', false)
              .set('warn', true);
        }
    }))
  .use(express.static(__dirname + '/www'))
  .use(express.logger());

这里的重要部分是从底部开始的第二部分。 从本质上讲,Express现在知道在该静态目录中查找您在HTML中指定的任何资产。 对我来说,我在我的服务器文件夹中创建一个名为WWW的文件夹,然后添加我的JS,CSS和图像。 例如,假设我在WWW文件夹中创建了“stylus”文件夹,并将其添加到store.css中。 在我的Jade模板中,我对该CSS资产的链接如下:

link(rel="stylesheet", type="text/css", href="stylus/store.css")

Express知道相对于__dirname +'/ www'路径查找该资产,从而找到“stylus”文件夹及其包含的CSS资源。 希望这会有所帮助,而且我没有冒险离开你的意图!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM