我正在使用我在 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;
一定有更好的方法,对吧?