我正在尝试从Web服务器运行qooxdoo应用程序的源版本。从文件系统加载时,应用程序正常工作,但从Web服务器启动时无法加载。
答案 0 :(得分:4)
假设您在/usr/pack/qooxdoo-1.0/frontend
中有qooxdoo框架,在/home/user/myproject
中有您的应用程序。现在将符号链接添加到应用程序目录中,如下所示:
ln -s ../../../../../../../usr/pack/qooxdoo-1.0/frontend qooxdoo
在config.json
文件中设置QOOXDOO_PATH
至qooxdoo
这样,无论局部根的明显深度如何,对qooxdoo源的所有引用都应该有效。对于网络服务器,您可能必须允许FollowSymlink或适当的东西......
PS这种方法有一个很好的副作用,即通过\\server\user\myproject\source\index.html
答案 1 :(得分:3)
源版本大部分时间都是从文件系统运行的(即在浏览器中使用文件:protocol打开它)。源脚本只引用具有相对路径的源代码和资源,无论它们恰好位于文件系统上。这通常不适合从Web服务器运行。即使您将应用程序的源目录包含在服务器可访问的路径中(从其DocumentRoot或其中一个定义的别名),可能是源脚本引用了Web服务器文档范围之外的文件。 / p>
因此,如果您发现自己需要从Web服务器运行应用程序的源版本,请注意以下提示:
使Web服务器可以访问您的应用程序的源目录,以便可以通过http://your.web.server/path/to/yourapp/source/index.html
这样的有效URL访问它。
确保您的应用程序使用的所有组件(如qooxdoo SDK本身以及您使用的任何其他qooxdoo库或贡献)均可由Web服务器同等访问。
确保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或Alias映射到文件系统中的目录,该目录是应用程序所有涉及的qooxdoo组件的公共父目录。