CI框架整合Smarty模板时包含css,js文件的解决方法

2023-12-19 15:18

本文主要是介绍CI框架整合Smarty模板时包含css,js文件的解决方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本博客主要是记录使用CI框架和smarty模板制作一个实战小项目,我会持续更新并把源码放到github上。https://github.com/LittleSaber/myapp


目录结构:
这里写图片描述
如果不会使用CI框架整合Smarty模板的话可以去看一下我的博客,里面详细讲解了如何整合。
application文件夹里放的是我们的控制器,模型。
templates文件夹里放的是我们的视图文件。
statics文件夹里放的是js,css,bootstrap框架的文件。


问题:当我准备开始我的项目的时候我发现,当我在templates文件夹下创建模板文件,然后使用这种方式包含的js和css文件的时候是这样的:
这里写图片描述

这里包含的路径是相对路径。然后我访问我的主页没有任何问题
这里写图片描述
但是,问题出现了,当我在index控制器里新建一个show方法的时候,会发现css和js文件的路径变得都不对了,这个问题困扰了我好几天啊!OMG!

public function show() {$data = array('title'=>'风味厨房');$food = $this->food_model->get_food();$this->ci_smarty->assign('data',$data);$this->ci_smarty->assign('food',$food);$this->ci_smarty->display('index.tpl');
}

模板文件还是一样。这时候我访问这个show方法的时候会出现这样的结果:
这里写图片描述
为什么会这样呢,一定是出在css文件上了。
我在浏览器上查看了一下css和js的路径发现调取的路径竟然是这样的:
https://localhost/temp/myapp/index/statics/css/……
这样问题就出现了。
最后我找到了解决方法:
找到config文件夹下的配置文件config.php
设置$config[‘base_url’]的值,我的项目是放在temp/myapp下的。

$config['base_url'] = 'http://localhost/temp/myapp/';

然后在我的控制器文件的构造函数中分配这个值给模板文件就可以了:
这里写图片描述
在模板中调用时这么写问题就完美解决了:
这里写图片描述

这篇关于CI框架整合Smarty模板时包含css,js文件的解决方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/512681

相关文章

部署Vue项目到服务器后404错误的原因及解决方案

《部署Vue项目到服务器后404错误的原因及解决方案》文章介绍了Vue项目部署步骤以及404错误的解决方案,部署步骤包括构建项目、上传文件、配置Web服务器、重启Nginx和访问域名,404错误通常是... 目录一、vue项目部署步骤二、404错误原因及解决方案错误场景原因分析解决方案一、Vue项目部署步骤

JavaScript中的reduce方法执行过程、使用场景及进阶用法

《JavaScript中的reduce方法执行过程、使用场景及进阶用法》:本文主要介绍JavaScript中的reduce方法执行过程、使用场景及进阶用法的相关资料,reduce是JavaScri... 目录1. 什么是reduce2. reduce语法2.1 语法2.2 参数说明3. reduce执行过程

C#中读取XML文件的四种常用方法

《C#中读取XML文件的四种常用方法》Xml是Internet环境中跨平台的,依赖于内容的技术,是当前处理结构化文档信息的有力工具,下面我们就来看看C#中读取XML文件的方法都有哪些吧... 目录XML简介格式C#读取XML文件方法使用XmlDocument使用XmlTextReader/XmlTextWr

mybatis和mybatis-plus设置值为null不起作用问题及解决

《mybatis和mybatis-plus设置值为null不起作用问题及解决》Mybatis-Plus的FieldStrategy主要用于控制新增、更新和查询时对空值的处理策略,通过配置不同的策略类型... 目录MyBATis-plusFieldStrategy作用FieldStrategy类型每种策略的作

C++初始化数组的几种常见方法(简单易懂)

《C++初始化数组的几种常见方法(简单易懂)》本文介绍了C++中数组的初始化方法,包括一维数组和二维数组的初始化,以及用new动态初始化数组,在C++11及以上版本中,还提供了使用std::array... 目录1、初始化一维数组1.1、使用列表初始化(推荐方式)1.2、初始化部分列表1.3、使用std::

oracle DBMS_SQL.PARSE的使用方法和示例

《oracleDBMS_SQL.PARSE的使用方法和示例》DBMS_SQL是Oracle数据库中的一个强大包,用于动态构建和执行SQL语句,DBMS_SQL.PARSE过程解析SQL语句或PL/S... 目录语法示例注意事项DBMS_SQL 是 oracle 数据库中的一个强大包,它允许动态地构建和执行

前端原生js实现拖拽排课效果实例

《前端原生js实现拖拽排课效果实例》:本文主要介绍如何实现一个简单的课程表拖拽功能,通过HTML、CSS和JavaScript的配合,我们实现了课程项的拖拽、放置和显示功能,文中通过实例代码介绍的... 目录1. 效果展示2. 效果分析2.1 关键点2.2 实现方法3. 代码实现3.1 html部分3.2

Python Jupyter Notebook导包报错问题及解决

《PythonJupyterNotebook导包报错问题及解决》在conda环境中安装包后,JupyterNotebook导入时出现ImportError,可能是由于包版本不对应或版本太高,解决方... 目录问题解决方法重新安装Jupyter NoteBook 更改Kernel总结问题在conda上安装了

Goland debug失效详细解决步骤(合集)

《Golanddebug失效详细解决步骤(合集)》今天用Goland开发时,打断点,以debug方式运行,发现程序并没有断住,程序跳过了断点,直接运行结束,网上搜寻了大量文章,最后得以解决,特此在这... 目录Bug:Goland debug失效详细解决步骤【合集】情况一:Go或Goland架构不对情况二:

Ubuntu固定虚拟机ip地址的方法教程

《Ubuntu固定虚拟机ip地址的方法教程》本文详细介绍了如何在Ubuntu虚拟机中固定IP地址,包括检查和编辑`/etc/apt/sources.list`文件、更新网络配置文件以及使用Networ... 1、由于虚拟机网络是桥接,所以ip地址会不停地变化,接下来我们就讲述ip如何固定 2、如果apt安