sia*_*sia 6 javascript static-html readfile node.js
我不能将服务的defualt.htm页面的头部内容包含在"工作"中.dom中的html加载,只有CSS和JS文件失败.还有更好的选择吗?我喜欢将解决方案保留在NodeJS中,但也可以打开socket.io并表达.
谢谢,下面是我正在使用的.
NodeJS为页面服务
var http = require('http'),
fs = require('fs');
fs.readFile(__dirname+'/default.htm', 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(port.number);
});
Run Code Online (Sandbox Code Playgroud)
Default.html页面
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="utf-8" />
<title></title>
<link rel="stylesheet" href="objects/css/site.css" type="text/css" />
<script src="objects/js/jquery.min.js" type="text/javascript"></script>
<script src="objects/js/site.min.js" type="text/javascript"></script>
</head>
<body></body>
</html>
Run Code Online (Sandbox Code Playgroud)
我也将在这里投入我的两分钱。
我解决与提供静态文件相同的问题的方法是开始使用 Paperboy 模块,该模块现在已被弃用,取而代之的是 Send 模块。
不管怎样,我解决这个问题的方法是在请求进入我的 GET 方法之前“劫持”请求并检查它的路径。
我“劫持”的方式如下
self.preProcess(self, request, response);
Run Code Online (Sandbox Code Playgroud)
和
preProcess: function onRequest(app, request, response){ //DO STUFF }
Run Code Online (Sandbox Code Playgroud)
如果路径包含 STATICFILES 目录,我会执行不同的文件服务,否则我会使用“html”路径。下面是该//DO STUFF函数preProcess()的
var path = urllib.parse(request.url).pathname;
if(path.indexOf(settings.STATICFILES_DIR) != -1) {
path = settings.STATICFILES_DIR;
requestedFile = request.url.substring(request.url.lastIndexOf('/') + 1, request.url.length);
return resolver.resolveResourceOr404(requestedFile, request, response);
}
Run Code Online (Sandbox Code Playgroud)
可能有更好的方法来做到这一点,但这对于我需要它做的事情来说就像一个魅力。
然后使用 Paperboy 模块,使用该resolver.resolveResourceOr404();函数传递文件,如下所示
resolveResourceOr404 : function (filename, httpRequest, httpResponse) {
var root = path.join(path.dirname(__filename), '');
paperboy.deliver(root, httpRequest, httpResponse)
.error(function(e){
this.raise500(httpResponse);
})
.otherwise(function(){
this.raise404(httpResponse);
});
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11537 次 |
| 最近记录: |