无论URL如何,都可以在CakePHP中实现静态文件

时间:2012-09-27 15:12:27

标签: cakephp path

我正在使用CakePHP开发一个网站,但我有一个非常基本的疑问:

当我在本地工作时,我使用虚拟主机,然后/意味着我的项目的根,然后我可以定义我的所有链接到静态内容,如/static/content.css(即) 。但是,当我测试网站时,我需要创建一个beta子目录,然后链接应更改为/beta/static/content.css

使用static/content.css之类的相对路径不是解决方案,因为这只能在主页面中工作,而在其他控制器和操作上,文件无法访问,因为系统会在controller/action/static/content.css中查找它们。

我的第一个解决方案是创建一个全局常量,我必须在我测试页面的每个地方重新定义(我的本地服务器,我的远程服务器,客户端远程服务器......)但我希望CakePHP提供一种方法来解决这个问题。问题以更优雅的方式进行。

感谢您的关注和帮助。

2 个答案:

答案 0 :(得分:2)

这就是为什么你不应该使用静态网址来做任何事情,而是做echo $this->Html->css('your_file');之类的事情,这会指向/webroot/css/your_file.css

答案 1 :(得分:0)

对我来说听起来很奇怪。为什么不在你的git / svn /无论什么名为“beta”的repo中都有一个分支,只需使用:example.com(live site)和beta.example.com(beta site)来测试分离的文件夹,vhost和数据库。你说测试,所以我不会尝试在实时数据库上使用beta功能。