【问题标题】:nodejs couchapp does not link css filenodejs couchapp不链接css文件
【发布时间】: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();
}

谁能指导我哪里错了

【问题讨论】:

    标签: node.js couchdb couchapp


    【解决方案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 监听事件。

    【讨论】:

      猜你喜欢
      • 2021-09-19
      • 2013-10-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-10
      • 2022-08-18
      • 2018-04-10
      相关资源
      最近更新 更多