【发布时间】:2013-10-15 19:04:05
【问题描述】:
我正在使用我在 Code Canyon 上获得的名为 XCRUD 的脚本。顾名思义,它创建 CRUD 表单。但是当服务器发生变化(即本地开发到生产)时,我无法让它工作。
它的配置包括在一个配置类中设置一堆属性。其中一个特别是文件路径:
public static $scripts_url = 'xcrud';
// URL to the xCRUD folder, not real path, without a trailing slash, can be relative,
e.g. 'some_folder/xcrud' or absolute, e.g. 'http://www.your_site.com/some_folder/xcrud'
我遇到的问题是我似乎无法找到一种方法来输入在多个服务器位置实际工作的相对路径。
例如,假设我要处理以下 3 个环境:
本地开发:
http://localhost:8888/site/生产测试:
http://urltest.com/dept/site/生产现场:
http://url.com/dept/site/
如果我将 xcrud 路径设置为 site/xcrud,它适用于 1,但不适用于 2 或 3。所以它的行为方式与我认为的相对路径不同。
我当前的“解决方案”是一个 switch 语句,它基于$_SERVER['SERVER_NAME'] 定义一个具有绝对路径的常量,并且我知道该路径将在这 3 个环境中,然后使用该常量作为配置中的路径。但这并不完全灵活,而且似乎是错误的做法:
switch ($_SERVER['SERVER_NAME']) {
case "localhost":
define('MY_SERVER_PATH', 'http://localhost:8888/site/xcrud');
break;
case "urltest.com":
define('MY_SERVER_PATH', 'http://urltest.com/dept/site/xcrud');
break;
case "url.com":
define('MY_SERVER_PATH', 'http://url.com/dept/site/xcrud');
break;
}
public static $scripts_url = MY_SERVER_PATH;
一定有更好的方法,对吧?
【问题讨论】:
-
你是如何使用scripts_url的?
-
问题:为什么您的开发服务器没有按照应有的方式镜像测试和生产?如果你在
http://localhost:8888/dept/site开发,你可能会在所有 3 个中使用/dept/site/xcrud。