我来自(传统)服务器端脚本(PHP)背景,并试图尝试使用Node来看看大惊小怪。使用node.js提供CSS和JS的基本网页包括
目的:提供了一个简单的网页文件,其上有一些样式表和脚本。
我的node.js脚本:
var http = require('http');
var fs = require('fs');
fs.readFile('index.html', function (err, html) {
if (err) {
throw err;
}
http.createServer(function(request, response) {
response.writeHeader(200, {"Content-Type": "text/html"});
response.write(html);
response.end();
}).listen(1337, '127.0.0.1');
});
的index.html:
<!DOCTYPE html>
<html>
<head>
<meta charset='utf-8'>
<title>Node.js test</title>
<link rel="stylesheet" media="screen" type="text/css" href="css/plugin.css" />
<link rel="stylesheet" media="screen" type="text/css" href="css/xGrid.css" />
<link rel="stylesheet" media="screen" type="text/css" href="css/jquery-ui/jquery-ui-1.10.1.custom.min.css" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script>
<script src="js/slate.js"></script>
<script src="js/slate.portlet.js"></script>
<script src="js/slate.message.js"></script>
<script src="js/plugin.js"></script>
</head>
<body>
<h1 class="styled-h1">Test</h1>
</body>
</html>
我现在面临的问题:
两个脚本包括从谷歌未来CDN被加载到文档上。但是,从本地文件系统调用的每个其他样式表或脚本都被解释为text/html
,因此没有预期的效果。下面是从谷歌浏览器控制台的截图:
我想明白为什么会这样。 PS:我知道我可以使用像Express这样的框架来让事情变得更容易,但我想首先得到基本原理。
我写了一个叫Cachemere模块,它可以让你做到这一点。它也会自动缓存所有资源。链接:https://github.com/topcloud/cachemere – Jon