codeigniter - 将图像,css,js,视频,(网络资源)加载到您的HTML中

时间:2013-01-23 17:05:28

标签: php .htaccess codeigniter

我在第一个CodeIgniter项目中工作......

在构建我的大部分PHP并开始使用几乎完成的脚本后,我意识到application/views/拒绝了对.htaccess文件夹的所有访问。

当我想访问特定于页面的JavaScript,图像或任何网络资源文件夹时,这对我的文件结构来说是个大问题。由于我的所有views template都假设该文件在本地使用(即Page_name/images/cutedog.jpg,因此我的代码更精确<img src="{images}cutedog.jpg">)。

我找到的解决方案是修改.htacces,以便过滤掉所有媒体文件,并允许访问我的应用程序文件夹。但是通过这样做,我会揭示我宁愿避免的文件结构。

我知道我可以将我的网络资源放在我的应用程序文件夹之外,这样可以解决问题。但出于可维护性的考虑,我认为拥有现在的所有内容会更具逻辑性。

所以我的问题如下......你会建议做什么工作:   - 我可以在application/views/issue/WEB_PAGE/Web-resource-folder维护我的网络资源 - 保持我的文件结构隐藏 - 可以访问网络资源

我的.htaccess

Deny from all
<FilesMatch "\.(css|js|jpg|pdf|avi|mpg|robots\.txt|png|pdf|favicon\.ico)$">
    Order allow,deny
    Allow from all
</FilesMatch>

我的文件结构:

-+ /application/
 |
 |-+ /Typical CI folders/        
 |-+ /view/
   |-+ /issue/
     |-+ /1/
       |-+ /page1/
         |-+ /img/
         |-+ /js/
         |-+ /video/
       |-+ /page2/
         |-+ /img/
         |-+ /js/
         |-+ /video/

1 个答案:

答案 0 :(得分:1)

你需要编写复杂的重写规则,以便告诉.htaccess:

if url is blah/bloh/blih/WEB_PAGE/images/cutedog.jpg 
then fetch application/views/issue/WEB_PAGE/img/cutedlog.jpg

如果你问我在创造更多资源时会变得越来越麻烦。与您建议的一样,您应将Web资源放在应用程序文件夹之外。

我的CI结构总是如下所示:

/application
/resources
   /page1
      /img
      /js
      /video
   /page2
      /img
      /js
      /video