PHP - 文件夹的相对路径?

时间:2017-01-01 00:55:14

标签: php codeigniter relative-path

我正在使用MVC codeigniter来处理我正在进行的项目。它正在localhost上运行,只需找到并定义base_url='http://localhost/app/

在本地计算机上运行时,一切都正常工作,图像等的路径如下:<link rel="stylesheet" href="http://localhost/app/assets/css/bootstrap.min.css">

我面临的问题是当我在手机上使用VPN查看网站时。在我的本地网络上,我输入服务器的IP地址来加载网站。这会导致images / css等仍然尝试从http://localhost加载,因此不会加载它们。

我是否可以使用PHP变量来获取文件所在文件夹的路径?即。 ../../assets/bootstrap.min.css

我尝试使用$_SERVER["DOCUMENT_ROOT"]之类的内容,但是这给了我完整路径/var/www/html/app/assets/css/,当我尝试从其他来源(例如我的VPN)加载此内容时,该路径再次无效。

我怎么能解决这个问题?这是路径问题还是我需要研究的服务器?

2 个答案:

答案 0 :(得分:1)

如果您想在网站内收集文件,则无需指定网址。

因此,如果你有一个域名,无论是localhost还是fqdn,它都无关紧要,并使网站和#34;便携式&#34;

您的链接/图片/脚本uri都可以相对调用。

define('ROOTPATH', '/path/to/webroot');

执行此操作将克服可移植性问题,您将在php中执行相同的操作,某些函数需要绝对路径,并且这些函数已记录但是如果您需要来自相邻目录的文件,许多允许您使用相对路径../path/to/file等。

定义路径常量。

ROOTPATH . '/path/to/file'

从这里我可以将我的常数与相对路径结合起来:

- (CIImage *)createQRForString:(NSString *)qrString
{
// Need to convert the string to a UTF-8 encoded NSData object
NSData *stringData = [qrString dataUsingEncoding:NSUTF8StringEncoding];

// Create the filter
CIFilter *qrFilter = [CIFilter filterWithName:@"CIQRCodeGenerator"];
// Set the message content and error-correction level
[qrFilter setValue:stringData forKey:@"inputMessage"];
[qrFilter setValue:@"H" forKey:@"inputCorrectionLevel"];

// Send the image back
return qrFilter.outputImage;
}

答案 1 :(得分:-1)

我也遇到了同样的问题。在视图和html之间的斜杠中似乎存在问题。它不包含反斜杠,而是包含正斜杠。解决方法:根据环境,通过定义-1到0来转到index.php并停止错误记录。

时间成为解决方案/解决方法: if(定义(&#39; ENVIRONMENT&#39;)) {     开关(环境)     {         案例发展&#39;:             使用error_reporting(0);

错误讯息: 警告:include(D:\ xampp \ htdocs \ IPT \ application \ views / errors \ html \ error_php.php)