Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php codeigniter-将图像、css、js、视频(web资源)加载到html中_Php_.htaccess_Codeigniter - Fatal编程技术网

Php codeigniter-将图像、css、js、视频(web资源)加载到html中

Php codeigniter-将图像、css、js、视频(web资源)加载到html中,php,.htaccess,codeigniter,Php,.htaccess,Codeigniter,我在我的第一个CodeIgniter项目中工作 在构建了大部分PHP并开始使用几乎完成的scrip之后,我意识到应用程序/views/文件夹的所有访问都被.htaccess拒绝 当我想要访问特定于页面的JavaScript、图像或任何web资源文件夹时,这对我的文件结构来说是一个巨大的问题。因为所有我的视图模板都假定文件在本地使用(在我的代码中更准确地说是Page\u name/images/cutedog.jpg) 我找到的解决方案是修改.htacces,以便它过滤掉所有媒体文件,并允许访问我

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

在构建了大部分PHP并开始使用几乎完成的scrip之后,我意识到
应用程序/views/
文件夹的所有访问都被
.htaccess
拒绝

当我想要访问特定于页面的JavaScript、图像或任何web资源文件夹时,这对我的文件结构来说是一个巨大的问题。因为所有我的
视图模板
都假定文件在本地使用(在我的代码中更准确地说是
Page\u name/images/cutedog.jpg

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

我知道我可以把我的web资源放在我的应用程序文件夹之外,这样就能解决问题。但出于可维护性的目的,我认为让一切都保持现状更符合逻辑

所以我的问题如下。。。您会建议采取什么措施,以便: -我可以在
application/views/issue/web\u PAGE/web资源文件夹
-隐藏我的文件结构 -可以访问web资源

我的.htaccess

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

您将需要编写复杂的重写规则来告诉.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

您不应该需要直接访问应用程序目录。您的控制器、视图和路由应该为您处理所有这些。您可能误解了CI的工作原理吗?Javascript和CSS资源可以放在公共的“scripts”或“CSS”目录中,然后您只需要修改核心CI.htaccess,以确保它不会将对这些文件夹的请求重写为index.php。这是一个糟糕的设计。为什么你认为如果你把资源放在应用程序文件夹之外,你就不能达到同样的效果呢?我唯一真正感兴趣的是把JS从主脚本中分离出来。使用特定于页面文件夹的JS可以更简单地修改和读取内容。特别是当一些建造它的人技术含量较低时。我试图简化“事情的走向”和一些人接触系统的可读性。主要是因为我有一个自定义的MVC,可以这样做。如果我不能在CI上这样做,那很好。但我宁愿尝试保持旧制度
/application
/resources
   /page1
      /img
      /js
      /video
   /page2
      /img
      /js
      /video