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 提供没有扩展名的文件(隐含 .html)