Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Extjs 在构建Sencha Touch时复制目录_Extjs_Sencha Touch 2 - Fatal编程技术网

Extjs 在构建Sencha Touch时复制目录

Extjs 在构建Sencha Touch时复制目录,extjs,sencha-touch-2,Extjs,Sencha Touch 2,我正在用SenchaTouch和PHP构建一个应用程序。这两个部分都在同一目录下的我的电脑上开发。因此,结构看起来像这样: AppDir - .sencha - app - build - packages - php - resources - touch 以上大部分内容都是我能在网上找到的所有示例的标准内容。然而,我也有“php”子目录,其中包含我的应用程序使用的ajaxapi 当我构建应用程序时,无法再找到PHP目录,因为它位于此处: http://local

我正在用SenchaTouch和PHP构建一个应用程序。这两个部分都在同一目录下的我的电脑上开发。因此,结构看起来像这样:

AppDir
  - .sencha
  - app
  - build
  - packages
  - php
  - resources
  - touch
以上大部分内容都是我能在网上找到的所有示例的标准内容。然而,我也有“php”子目录,其中包含我的应用程序使用的ajaxapi

当我构建应用程序时,无法再找到PHP目录,因为它位于此处:

http://localhost/AppDir/php/
当应用程序位于此处时:

http://localhost/AppDir/build/production/AppDir/
我想不出一种方法来强制构建过程将PHP目录复制到输出目录中(或者通知构建的应用程序在更高的目录中搜索phpapi)。我曾考虑将其作为一种资源,这会起作用,但似乎违反直觉


有人能给我指点吗?谢谢。

Sencha CMD使用的构建过程使用ANT,因此您可以将一些ANT任务添加到build.xml文件中以复制此文件夹,这将简要介绍构建过程

这个问题的答案应该为您提供在构建脚本中添加这些额外任务所需的信息

不过,我不完全确定将此文件夹复制到build/文件夹是正确的方法。生成文件夹中生成的所有代码都是编译/缩小的前端应用程序。这与后端API服务是分开的,构建/部署脚本可能会反映这一点


当您对前端进行更改时,您需要再次构建,但是对于后端PHP代码,您不需要这样做。理论上,您可以分别为前端和后端部署完成的代码,即使它们部署到同一个目标,然后只更新和部署您在更新它们时修改的代码。

您关于不同时部署它们的观点是有效的,但这给我留下了类似的难题。当URL在开发和最终部署期间会有所不同时,如何将AJAX请求指向正确的URL?(我最初复制的想法是为了解决这个问题,使其在开发和构建中具有相同的相对路径。)当然,我知道我可以在共享对象中硬编码URL。但是有更好的办法吗?可能是一个即使在整个事情缩小后也可以修改的文件?这完全取决于您对生产环境的实际需求,在部署此文件时,您只需要build/appdir目录的内容。您可以将这些文件放在live hosting帐户的根目录中,也可以将PHP文件夹放在同一位置。因此,api的路径应该是/php——与您的开发环境相同。您还可以在子域(如api.example.com)上单独运行api(可能导致跨域问题)。您可以创建部署脚本来获取这两个文件夹,并在需要时上载到同一位置。