跳到主要内容
CNode

nodejs新手问一个比较白痴的问题

问答
Eensalty发布于 11 年前最后回复 11 年前
1665100

我有一个 jquery,jqxwidget的html页面 dashboard.html,我想用nodejs 发布到web上 但是js的效果显示不出来,正常用apache是可以显示出来的,我应该从哪块入手

var http = require("http");
var fs = require('fs');
exports.start = function(){
http.createServer(function(request, response) {
fs.readFile('./dashboard.html', 'utf-8',function (err, data) {//读取内容
if (err) throw err;
response.writeHead(200, {"Content-Type": "text/html"});//注意这里
response.write(data);
response.end();
});
}).listen(8888);
console.log("server start...");
<body class='default'>
    <div id='chartContainer' style="width: 750px; height: 400px;">
    </div>
    <table style="width: 680px">
        <tr>
            <td style="padding-left: 50px;">
                <p style="font-family: Verdana; font-size: 12px;">Select the series type:
                </p>
                <div id='dropDownSeries'>
                </div>
            </td>
查看回复

回复 (16)

D
DevinXian#1611 年前
引用 ensalty@DevinXian 能给我举个例子吗 ,怎么叫单独访问,linux 里面路径都可以打开,权限都设置可访问, response.writeHead(200, {"Content Type": ...

@ensalty 比如html中有,把这个路径放到浏览器地址栏,看能否返回就完了。楼上有人说了,浏览器按F12,看network那一栏有没有404

E
ensalty#1511 年前

这是dashboard.html

jqxChart Live Updates
		 <td>
            <p style="font-family: Verdana; font-size: 12px;">Select unit scheme:
            </p>
            <div id='unit'>
            </div>
        </td>
		
		
    </tr>
</table>

Select the series type:

Select color scheme:

E
ensalty#1411 年前

我就卡在这上面了,以前没弄过前台,如果能把原有项目的jQuery 的html 直接放到nodejs的服务器上,之后就方便了

E
ensalty#1311 年前
引用 DevinXian@ensalty 确保file list里面的路径单独提出来能够访问,放在浏览器地址栏试试!最好单独定义路由规则,类似上面的public/

@DevinXian 能给我举个例子吗 ,怎么叫单独访问,linux 里面路径都可以打开,权限都设置可访问,

response.writeHead(200, {"Content-Type": "text/html"});//注意这里

这里需要改吗, js的 对应javascript css对应text/css的?

D
DevinXian#1211 年前
引用 ensalty@ensalty 一篇空白,只剩字体

@ensalty 确保file list里面的路径单独提出来能够访问,放在浏览器地址栏试试!最好单独定义路由规则,类似上面的public/

E
ensalty#1111 年前
引用 ensalty

@ensalty 一篇空白,只剩字体

E
ensalty#1011 年前

屏幕截图.jpg

E
ensalty#911 年前

这是url parse 出来的file list

/home/eqsvimp/nodejs/Jquery/ /home/eqsvimp/nodejs/Jquery/jqwidgets/styles/jqx.base.css /home/eqsvimp/nodejs/Jquery/index.js /home/eqsvimp/nodejs/Jquery/scripts/jquery-1.11.1.min.js /home/eqsvimp/nodejs/Jquery/jqwidgets/jqxcore.js /home/eqsvimp/nodejs/Jquery/jqwidgets/jqxdata.js /home/eqsvimp/nodejs/Jquery/jqwidgets/jqxchart.core.js /home/eqsvimp/nodejs/Jquery/jqwidgets/jqxdraw.js /home/eqsvimp/nodejs/Jquery/jqwidgets/jqxslider.js /home/eqsvimp/nodejs/Jquery/jqwidgets/jqxbuttons.js /home/eqsvimp/nodejs/Jquery/jqwidgets/jqxlistbox.js /home/eqsvimp/nodejs/Jquery/jqwidgets/jqxdropdownlist.js /home/eqsvimp/nodejs/Jquery/jqwidgets/jqxscrollbar.js /home/eqsvimp/nodejs/Jquery/scripts/demos.js

E
ensalty#811 年前
引用 berwinvar file = url.parse( req.url ).pathname; fs.readFile( 'public'+file, function( err, data ){ if ...

@berwin

感谢大神,我加完了, 'public'+file, 我log 打出来的的确是 js 文件和css文件,为啥还是空白,需要分类判断后缀之类的么

var http = require("http"); var fs = require('fs'); var url=require('url'); console.log('begin');

exports.start = function(){ http.createServer(function(request, response) { var file = url.parse( request.url ).pathname;

var str = '/home/eqsvimp/nodejs/Jquery'+file;
console.log(str); fs.readFile( str, function( err, data ){ if (err) return; response.end(data); } );

fs.readFile('./dashboard.html', 'utf-8',function (err, data) {//读取内容 if (err) throw err; response.writeHead(200, {"Content-Type": "text/html"});//注意这里 response.write(data); response.end(); });

}).listen(8888); console.log("server start..."); }

L
leapon#711 年前

css js 等静态资源文件一般是放在一个公共目录下,用 nodejs 或 apache 对公共目录支持一下。

Z
zhangking520#611 年前

这个和nodejs 没关系 他只负责把html 输出给浏览器 应该是你的html有问题

B
berwin#511 年前
var file = url.parse( req.url ).pathname;
  fs.readFile( 'public'+file, function( err, data ){
  if (err) return;
  res.end(data);
} );

加一段这个就行了。。。。这样能保证请求html这样的静态文件也能成功返回。。。public是一个存css js什么的文件夹

B
berwin#411 年前

楼主。。你这样肯定是不行的。。。。你的css js 包括图片什么的都是访问不到的。。因为你只返回了一个html。

你打开network会发现,所有请求js css 什么的都是404找不到文件。。。

E
ensalty#311 年前

@zhangking520

是吗? 我刚开始看nodejs,是不是css要response一下, JS还需要添加什么类似引入的操作吗 现在css,js的效果出不来,正常 windows下打开html是正常的

jqxChart Live Updates
E
ensalty#211 年前

哪里有Jquery + nodejs的范例

E
ensalty#111 年前

有人吗? 不太理解 我的html引用了一些js,但是只能显示出 字符串,js的style都没有

Select the series type:

<script type="text/javascript" src="../scripts/jquery-1.11.1.min.js"></script>
<script type="text/javascript" src="../jqwidgets/jqxcore.js"></script>
<script type="text/javascript" src="../jqwidgets/jqxdata.js"></script>
<script type="text/javascript" src="../jqwidgets/jqxdraw.js"></script>

参与回复

登录后即可参与回复。登录