代码点火器 + CSS

Posted

技术标签:

【中文标题】代码点火器 + CSS【英文标题】:CodeIgniter + CSS 【发布时间】:2012-02-09 12:32:03 【问题描述】:

美好的一天,我正在和 Smarty 一起学习 CodeIgniter。我的 CSS 文件存储在

/App01/application/views/css/main.css

要链接我使用的 CSS:

<link rel="stylesheet" type="text/css" href="http://localhost:88/APP1/application/views/css/layout.css" media="screen" />

但是我的页面上没有应用 CSS。当我打开 CSS URL 时,我收到一条消息:

Forbidden
You don't have permission to access /APP1/application/views/css/layout.css on this server.

请问,我做错了什么?我想将我的 CSS 与视图保持在一起,因为将来我想学习如何创建多个主题,并且我认为 CSS 应该保存在主题文件夹中。

我可以用一些 Smarty 变量替换 CSS 文件的 URL 路径,这样当我移动我的应用程序时,我就不需要手动更改模板中的 CSS URL 路径了吗?

提前感谢您!沃杰科技

【问题讨论】:

+1 用于以 Good Day 开头。 【参考方案1】:

CodeIgniter 的/application 文件夹中的任何内容都应被视为越界。为了获得最佳安全性,您实际上应该考虑将/application 保持在您的wwwpublic_html 文件夹上方,结构如下:

– application
    – controllers
    – models
    – views
    – ...
– system
    – core
    – libraries
    – ...
– public_html
    – index.php

这使您的应用程序代码更安全。

我建议在公共文件夹中创建您的客户端脚本和 CSS。例如public_html/csspublic_html/js。或者,如果你想走主题路线,可能将每个 CSS 文件命名为主题的名称,这样你就有 css/theme1.csscss/theme2.css

如果您的网站将始终从域的根目录运行,那么您可以使用:

<link rel="stylesheet" type="text/css" href="/css/layout.css" media="screen" />

但是,如果您觉得要移动各种东西,请考虑在控制器中准备好文件位置,然后再将其发送给 Smarty。

$this->load->helper('url');
$this->smarty->assign('css_file', base_url("css/theme1.css"));

这将返回:

http://localhost/app1/css/theme.css

或者你的 CodeIgniter URL 是什么。

【讨论】:

非常感谢Thomas的建议,对我理解有很大帮助!【参考方案2】:

这将有助于将 css 链接到 codeigniter。

link_tag 用于链接资源,您可以使用helper 函数。 例如 html helper、url helper、email helper 等。

在你的控制器中,你必须创建一个类似的函数

<?php 
class Home extends CI_Controller
    public function helper()
        $this->load->helper('html');    
        $this->load->view('index');
    

?>

而您在view 文件夹中的index.php 使用link_tag 关键字。

<html>
<head>
<title></title>
<?php echo link_tag('App01/application/views/css/main.css');?>
</head>
<body>
    <?php 
     .......
    ?>
</body>
</html>

【讨论】:

【参考方案3】:

尝试将符号链接添加到您的服务器文档根文件夹。 (www/public_html/htdocs)

cd (document root folder)
ln -s (/App01/application/views/css) .

这样您就可以访问您的 css 文件夹并保持当前结构。

【讨论】:

以上是关于代码点火器 + CSS的主要内容,如果未能解决你的问题,请参考以下文章

代码点火器错误“地址不被理解”

在代码点火器中调用帮助程序和库的方法有区别吗?

404 index() 函数代码点火器

代码点火器 URL 更改

Ajax CSRF 403 禁止代码点火器

自动完成文本未显示实际数据代码点火器?