javascript - 如何在 Node http 服务器的 html 中包含 css/js

标签 javascript html css node.js http

我是新来的。

我有一个网站 ( index.html),其中包含多个 cssjs 文件。在本地它工作正常,但如果我启动 node-http 服务器(调用 index.html ),网站( localhost:8080 )不知道这些文件。它只显示与 javascript 文件无关的基本文本(即 <h1> )。我在浏览器中检查了源代码以查看 index.html .但是如果我点击 cssjs 链接,我将被转发回 index.html。

我想,这是一个链接问题。或者您认为问题可能出在 Node http 服务器实现中?如果你能给我一些支持,那将对我很有帮助。

谢谢和最良好的祝愿, 凯文

webServer.js:

var express = require('express');
var connect = require('connect');
var http = require('http');

var path = "";

var app = connect().use(express.static(__dirname + path));
http.createServer(app).listen(8080);

index.html:

头:

<!-- Cascading Style Sheets  -->
<link href="css/custom.css" media="screen" rel="stylesheet" type="text/css" >
<link href="css/rickshaw.css" media="screen" rel="stylesheet" type="text/css" >
<link href="css/envision.css" media="screen" rel="stylesheet" type="text/css" >

正文:

<h1>Data monitoring</h1>

<!-- Drawing rickshaw based charts -->
<div id="chart-type1"></div>
<div id="chart-type2"></div>
<!-- Drawing envision based charts -->
<div id="chart-TimeSeries"></div>
<div id="chart-RealTime"></div>

<!-- JavaScript  -->
<script type="text/javascript" src="lib/d3.min.js"></script>
<script type="text/javascript" src="lib/rickshaw.js"></script>

<script type="text/javascript" src="js/chart.js"></script>
<script type="text/javascript" src="js/chartTimeSeries.js"></script>
<script type="text/javascript" src="js/chartRealTime.js"></script>

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

最佳答案

您必须以如下方式为所有文件定义路由:

var http = require ('http');
var fs = require('fs');

var port = '8080';

var server = http.createServer(function (req, res) {
   if (request.url === '/') {
       fs.readFile('index.html', function(err, data){
          res.writeHead(200, {'Content-Type': 'text/html'});
          res.end(data, 'utf-8');
       });
   } else if (request.url === '/css/custom.css') {
       /*Read /css/custom.css file*/
   } else if (request.url === '/path/to/other.file') {
       /*Read /path/to/other.file*/
   }
}).listen(port);

但这很难阅读和编写,因此最好为此使用 Web 框架。你可以试试Express或者我写的框架:Simples .您可以将所有静态文件放在一个目录中,然后使用此代码:

var simples = require('simples');

var server = new simples(8080);

server.serve('path/to/staticFiles');

// or in some special cases:

server.get('/some_url', function (connection) {
    connection.header('X-Some-Header', 'Header Value'); // Set a header
    connection.drain('some_local_file.ext');
});

关于javascript - 如何在 Node http 服务器的 html 中包含 css/js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23984307/

相关文章:

javascript - 单击触发器时打开和关闭同级 div

javascript - jQuery 事件触发多次

html - 使用 CSS 对元素进行分组

javascript - HTML,CSS : Change a row's border colow on hover

html - 以 Angular 注入(inject) $modal 时出错

html - 如何在 cloudinary 标签中使用背景图片样式?

javascript - "Failed to execute 'appendChild' on 'Node'”是什么意思?

JavaScript for 循环增量的行为很奇怪

javascript - 对象和资源管理器 9 以及所有其他浏览器和 Javascript 版本中的不同行为

jquery - 保存由 Jquery 动态创建的页面