nodejs couchapp不链接css文件

Posted

技术标签:

【中文标题】nodejs couchapp不链接css文件【英文标题】:nodejs couchapp does not link css file 【发布时间】:2013-04-03 23:04:55 【问题描述】:

我制作了一个 couchdb 设计文档,它可以在以下网址上完美运行 http://localhost:5984/db/_design/app/index.html 现在的问题是我正在尝试获取页面内容并从节点 js 显示它,但只显示 html 页面链接的 css 和 js 文件不起作用,当我试图缩小问题范围时,我发现 css 和 js文件应该具有 couchdb 的登录凭据并且没有链接我什至尝试在响应参数中添加 auth 标头但仍然没有运气

var http = require('http');

var json;
var root = new Buffer("admin:pass").toString('base64');
http.createServer(function(req, res) 
res.setHeader('Authorization', root);
res.writeHead(200,  'Content-Type':'text/html' );
couchPage();
res.end(json);  
).listen(8080);

function couchPage() 
var options = 
    hostname: 'localhost',
    port: 5984,
    path: '/db/_design/app/index.html',
    auth: 'admin:pass',
    method: 'GET'
;

var req = http.request(options, function(res) 
    res.setEncoding('utf8');
    res.on('data', function (chunk) 
        json = chunk;
    );
);

req.end();

谁能指导我哪里错了

【问题讨论】:

【参考方案1】:

我认为这与 couchdb 授权无关。问题是您没有在 nodejs 服务器上执行任何路由。也就是说,浏览器向 localhost:8080 发出请求,并接收到 /db/_design/app/index.html 的内容作为应答。现在,浏览器检测到样式表的链接,比如“style.css”。它向 localhost:8080/style.css 执行请求,但您的 nodejs 服务器只是忽略了请求的“style.css”部分。相反,客户端会再次收到 /db/_design/app/index.html 的内容!

如果你想通过 nodejs 提供设计文档的附件,你必须先解析请求,然后从 couchdb 中检索相应的文档。但是,我认为您实际上并不想这样做。要么您想以传统方式在 nodejs 后面使用 couchdb(不能直接从客户端访问),然后您只需将其用作数据库,并将您的 html(或模板)文件存储在磁盘上。或者你想直接将 couchdb 暴露给客户端,让 nodejs 通过 couchdb _changes feed 监听事件。

【讨论】:

以上是关于nodejs couchapp不链接css文件的主要内容,如果未能解决你的问题,请参考以下文章

Couchapp:如何存储文件?

如何让 couchapp 提供没有扩展名的文件(隐含 .html)

如何使用 evently 将事件处理程序附加到 CouchApp 中的小胡子渲染?

Couchapp,Jquery:意外的标识符

nodejs 初次链接 mongodb 的详细细节

沙发应用程序不起作用! (node.couchapp.js)