0

我想在 appjs 窗口中显示我网站的内容,但我不知道如何。

在 appjs 脚本中有 app.serveFilesFrom(__dirname + '/content'); 说明内容在哪里,它必须显示,但我不希望它在本地,我希望它显示我的网站的内容,由 node.js 服务器脚本运行。

我已经尝试过这个 https://github.com/appjs/appjs/wiki/Using-express-to-handle-local-http-requests 和 express.js 文档中的一些方法,但没有成功。

因此我在这里问,有人有想法,怎么做?

4

2 回答 2

2

为了让您的网站像 Web 浏览器一样显示在 AppJS 窗口中,这是 AppJS 的主要意图之一,您可以采取以下两 (2) 步骤中的任何一个;

  1. 在位于“data/content/”的 index.html 文件中创建一个 IFRAME(填充宽度和高度)。

    将 IFRAME SRC 设置为您的网站 url。

    例如 <iframe src="http://www.YourWebsite.com">

    当 app.exe 启动时,这将在 AppJS 窗口中显示您的网站。

    注意:您可能希望使用 CSS 使 iframe 填充窗口的 100% 宽度和 100% 高度。

  2. 更改“data/node_modules/appjs/lib/settings.js”处的代码行

    网址:'ht tp://appjs',

    网址:' http ://www.YourWebsite.com '

大多数时候我选择第一个选项,因为它允许我使用 CSS 做很多事情。这包括在 IFRAME 的背景上放置一个动画 GIF,以指示在启动时页面加载。

只有当我想让我的实际网站 URL 在尝试黑客攻击时更难找到时,我才会选择第二个选项。同时仍然保留“数据/内容”目录及其内容未删除。

我希望这能回答。

于 2013-03-14T11:16:37.107 回答
1

我希望我正确理解了您的问题,您实际上可以发出代理请求并将其响应传递给您的应用响应。

var http = require("http");
var express = require("express");
var app = express();

var options = {
    host: "stackoverflow.com",
    port: 80,
    path: "/",
    method: "GET",
    headers: {}
};

app.get("/stackoverflow*", function (request, response) {
    "use strict";

    var proxyRequest;

    options.headers.cookie = request.headers.cookie;
    options.headers["user-agent"] = request.headers["user-agent"];

    // TODO set other headers if needed

    options.path = "/" + request.path.split("/").slice(2).join("/");
    options.method = request.method;

    proxyRequest = http.request(options, function (proxyResponse) {
        proxyResponse.pipe(response);
    });

    request.pipe(proxyRequest);
}).listen(8080);

现在您可以导航到http://localhost:8080/stackoverflow/questions/14880557/how-to-connect-appjs-to-nodejs-server-and-show-its-content/14890268#14890268并且您的应用程序将显示来自 的请求路径stackoverflow.com

于 2013-02-15T07:50:06.723 回答