我在整理应用程序中的路径时遇到问题。
我正在使用 APPPATH 函数在数据库中读取/写入图像的字符串路径。问题是 APPPATH 将函数放在控制器之后
这是我获取 css 的函数
<link rel="stylesheet" type="text/css" href="<?php echo '../' . APPPATH.'_data/css/style.css'; ?>" />
当我去http://localhost/project/index.php/home
效果很好
CSS 链接到http://localhost/project/application/_data/css/style.css
哪个是对的
但我有另一个控制器
http://localhost/project/index.php/member/index/1
css 文件路径必须是
href="<?php echo '../../../' . APPPATH."_data/css/style.css"; ?>"
因为否则我的 css 链接会转到
http://localhost/project/index.php/member/application/_data/css/style.css
我使用一个简单的模板结构,其中我将页眉/内容/页脚放在视图中的包含子文件夹中,并将数据发送到内容。相当标准的东西。我只是不明白为什么 APPPATH 不起作用,就好像在调用时它给了我 APPLICATION 文件夹的 PATH 一样,无论使用的是什么类。
APPPATH
实际上是针对系统文件,而不是前端资产。这是应用程序文件夹的路径,这就是它的用途。../relative/paths
在 Codeigniter 中很少能正常工作,因为它们与当前 URL(而不是视图文件)相关。这实在是让你陷入了困境。
简单的解决方案是使用base_url()
相反,但如果你想要更短的路径,这就是我使用的:
define('BASE_URI', str_replace('index.php', '', $_SERVER['SCRIPT_NAME']));
在大多数情况下,结果将是/
,但这将考虑子目录中的 CI 安装。对你来说,它应该返回/project/
.
不建议将 CSS 和图像等静态文件混合到应用程序文件中。大多数人都会创建一个名为assets
or public
来存储它们。
<link rel="stylesheet" href="<?php echo BASE_URI.'public/css/style.css'; ?>" />
<link rel="stylesheet" href="<?php echo base_url().'assets/css/style.css'; ?>" />
如果您确实需要将资源存储在应用程序文件夹中,则只需删除所有相对路径即可。从那以后你就不需要它们了APPPATH
是绝对的:
<link rel="stylesheet" href="<?php echo APPPATH.'_data/css/style.css'; ?>" />
这应该在任何地方都有效。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)