我正在使用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)加载此内容时,该路径再次无效。
我怎么能解决这个问题?这是路径问题还是我需要研究的服务器?
答案 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)