如何在 codeigniter 4 中加载 css 或 js 文件?
Posted
技术标签:
【中文标题】如何在 codeigniter 4 中加载 css 或 js 文件?【英文标题】:How can I load css or js file in codeigniter 4? 【发布时间】:2020-02-11 23:10:18 【问题描述】:当我尝试加载 css 或 javascript 文件时,它会返回 404 错误。
我尝试过使用 html helper 的 link_tag、URL helper 的 base_url 方法等帮助器,它会创建到文件的路由,但无法加载。
这是我的控制器:
class Pages extends Controller
public function viewPage($page)
if(!is_file(APPPATH."/views/pages/$page.php"))
throw new \CodeIgniter\Exceptions\PageNotFoundException($page);
helper('html');
$data['title'] = $page == 'noticeboard' ? "page1" : "page2";
if($page != "index")
echo view('templates/header', $data);
echo view("pages/$page", $data);
if($page != "index")
echo view("templates/footer", $data);
我的路由器:
$routes->get("/", "Pages::viewPage/index");
HTML 中的标题:
<?=link_tag('public/css/style.css')?>
assets 文件夹位于 htdocs 的根目录(我使用的是 xampp apache 服务器)。
当我尝试加载 CSS 或 JS 时,我收到此错误:
我是 CodeIgniter 的新手,因此我们将不胜感激。
目录结构: 文档 -民众 --CSS ---style.css --JS ---app.js -应用程序 --控制器 ---页面.php --views ---页面 ----index.php* 我已将我的 CSS、JS 文件路由从资产更改为公共 *
【问题讨论】:
请告诉我们您的文件夹结构,只有我们才能告诉您准确的解决方案 @bhuvneshpattnaik 添加了目录结构。 应用程序文件夹呢? @bhuvneshpattnaik 添加。自 CodeIgniter 4 以来,应用程序文件夹已将名称更改为“app”。 尝试将<?=link_tag('public/css/style.css')?>
行中的public/css/style.css
替换为/css/style.css
【参考方案1】:
由于 app 是公用文件夹的同级文件夹,
根据 codeIgniter 4 。
您放入公用文件夹的任何内容都可以直接访问。
所以应该像下面这样将 css 应用于视图。
在views文件夹中假设有一个文件为index.php
那么代码应该如下所示:
index.php
<link rel="shortcut icon" type="image/png" href="/css/style.css"/>
【讨论】:
如果你想保护你的源文件不被外部访问,你不应该把它们放在公共目录中。在此处查看详细信息:***.com/questions/19820314/… @bhuvnesh pattnaik 我也有同样的问题。显然我尝试创建与 app 文件夹相同级别的 assets 文件夹,并尝试将 css 文件放在 public 文件夹中,它仍然显示 file not found 错误。【参考方案2】:试试这个
$config['base_url'] = "http://ur_site_url.com/";
比你认为的
<?php echo base_url('assets/css/style.css'); ?>
【讨论】:
“在那之后”是什么意思? 我的意思是配置你的设置,然后在主视图中使用base_url()
此答案适用于 CodeIgniter 3 而不是 CodeIgniter 4,因为 CI4 不再使用配置数组。【参考方案3】:
转到 config/App.php 并更改此变量
public $baseURL = 'http://yoursite';
然后你可以访问它
<?php echo base_url();?>
【讨论】:
【参考方案4】:您还可以使用 html 帮助程序并使用 link_tag 添加样式表 根据您的设置,如果您在 url 中隐藏 public 文件夹,则必须将 public 添加到 url。
<?php echo link_tag('public/css/style.css'); ?>
【讨论】:
【参考方案5】:您是否在 application/config/config.php 文件中添加了 base_url? 这里:http://prntscr.com/pji8a5
您提供的站点 URL 未定义。
你已经给了http://localhost:8080/css.....
但应该是http://localhost:8080/SITE_URL/css.....
如果你加$config['base_url'] = "http://site_url.com/";
那么你可以直接给base_url('assets/css/style.css');
<link rel="stylesheet" href="<?php echo base_url('assets/css/style.css'); ?>">
<script src="<?php echo base_url('assets/js/js.css'); ?>"></script>
谢谢
【讨论】:
我已经将base_url改成了这样:public $baseURL = 'http://localhost';
(我觉得不一样,因为这是codeigniter 4。我根本没有应用程序文件夹),但错误没有修复。跨度>
您的项目文件夹名称是什么?你应该给$baseURL = 'http://localhost/project_name';
@YJM
那是 CI3 而不是 CI4。 CI4 不再像那样使用 $config[] 数组以上是关于如何在 codeigniter 4 中加载 css 或 js 文件?的主要内容,如果未能解决你的问题,请参考以下文章