我有一个我在openshift上使用节点应用程序托管的网页。它在这里 http://nodejs-volition.rhcloud.com/
我的问题很简单(虽然我没有找到其他人问过它)。如何引用包含index.html
的目录中的其他文件例如,我想使用索引目录中的图像。我目前的图片html是
<img src="$OPENSHIFT_REPO_DIR/images/1416870991752.jpg" alt="spark core">
我也尝试过使用“images / 1416870991752.jpg”。链接到目录中的其他html文件我有同样的问题吗? 我究竟做错了什么?请帮帮忙?
答案 0 :(得分:1)
正如corey112358所暗示的那样,关键在于使用nodejs主持必须定义服务器。我的应用程序已经有一个服务器文件,因此我必须修改现有服务器,而不是创建新服务器。我现在已经成功完成了它,对server.js文件进行了两处更改。
第一个更改是修改缓存。那应该是这样的......
self.zcache['index.html'] = fs.readFileSync('./index.html');
self.zcache['page2.html'] = fs.readFileSync('./page2.html');
self.zcache['sparkcoredark.jpg'] = fs.readFileSync('./sparkcoredark.jpg');
已经包含了第一行,但接下来的两行是我添加的另一个html页面和图片。
第二步是修改server.js文件的self.createRoutes部分,如下所示(默认情况下包含asciimo图像)。
self.createRoutes = function(){ self.routes = {};
self.routes['/asciimo'] = function(req, res) {
var link = "http://i.imgur.com/kmbjB.png";
res.send("<html><body><img src='" + link + "'></body></html>");
};
self.routes['/'] = function(req, res) {
res.setHeader('Content-Type', 'text/html');
res.send(self.cache_get('index.html') );
};
self.routes['/page2.html'] = function(req, res) {
res.setHeader('Content-Type', 'text/html');
res.send(self.cache_get('page2.html') );
};
self.routes['/sparkcoredark.jpg'] = function(req, res) {
res.setHeader('Content-Type', 'image/jpg');
res.send(self.cache_get('sparkcoredark.jpg') );
};
};
希望有助于解决这个问题的其他任何人。感谢coreyfibonacci