代码之家  ›  专栏  ›  技术社区  ›  Fabian Jakobs

从Web服务器运行QooxDoo源版本

  •  3
  • Fabian Jakobs  · 技术社区  · 15 年前

    我正在尝试从Web服务器运行我的QooxDoo应用程序的源版本。从文件系统加载应用程序时工作正常,但从Web服务器启动时无法加载。

    2 回复  |  直到 15 年前
        1
  •  4
  •   Tobi Oetiker    15 年前

    假设您的QooxDoo框架位于: /usr/pack/qooxdoo-1.0/frontend 你的申请 /home/user/myproject .现在将符号链接添加到应用程序目录中,如下所示:

    ln -s ../../../../../../../usr/pack/qooxdoo-1.0/frontend qooxdoo
    

    config.json 文件设置 QOOXDOO_PATH qooxdoo

    这样,所有对QooxDoo源的引用都应该工作,而不管本地根的明显深度如何。对于Web服务器,您可能必须允许followsymlink或适当的内容…

    ps这种方法有一个很好的副作用,即使您的应用程序在Windows上启动时也能工作,通过 \\server\user\myproject\source\index.html

        2
  •  3
  •   Fabian Jakobs    15 年前

    大多数情况下,源版本都会从文件系统中运行(即,在浏览器中使用file:protocol打开它)。源脚本只引用具有相对路径的源代码和资源,不管它们出现在文件系统中的哪个位置。这通常不适合从Web服务器运行。即使将应用程序的源目录包含在服务器可访问的路径中(位于其documentroot或定义的别名的某个位置),源脚本也可能引用Web服务器文档范围之外的文件。

    因此,如果您发现自己处于需要从Web服务器运行应用程序源版本的情况,请注意以下提示:

    • 使Web服务器可以访问应用程序的源目录,以便通过有效的URL(如 http://your.web.server/path/to/yourapp/source/index.html .

    • 确保您的应用程序使用的所有组件(如QooxDoo SDK本身)以及您使用的任何其他QooxDoo库或贡献都能被Web服务器同等访问。

      • 对于通过应用程序配置中的contrib://pseudo协议引用的contrib,将下载这些contrib并将其存储在下载缓存目录(config key cache/downloads)中,因此请确保在考虑中包含此路径。
    • 确保Web服务器上的相对路径与文件系统上的路径相匹配,例如,如果应用程序位于以下位置的文件系统上: /a/b/A/myapp 您的QooxDoo安装在 /a/b/Z/qooxdoo-sdk 你的应用程序的服务器路径是 /web/apps/myapp 然后确保到QooxDoo的服务器路径是 /web/Z/qooxdoo-sdk 所以相对引用 ../Z/qooxdoo-sdk will 在Web服务器下工作。

    实现这一点的一个简单方法是将documentroot或别名映射到文件系统中的一个目录,该目录是应用程序所有相关QooxDoo组件的公共父目录。