【发布时间】:2014-02-20 23:15:54
【问题描述】:
我的 cakePHP 应用程序在 webroot 目录中生成一个简单的文本文件。
我尝试通过在浏览器中输入http://<my own domain>/simple.txt 来访问它,但显示的是应用程序索引页面,而不是我的文本文件。
如何使这个文本文件可以直接访问? 请帮帮我!
【问题讨论】:
我的 cakePHP 应用程序在 webroot 目录中生成一个简单的文本文件。
我尝试通过在浏览器中输入http://<my own domain>/simple.txt 来访问它,但显示的是应用程序索引页面,而不是我的文本文件。
如何使这个文本文件可以直接访问? 请帮帮我!
【问题讨论】:
猜测一下,你有以下结构(或类似的):
docroot
app
Config/
Controller/
Model/
Plugin/
Test/
tmp/
View/
webroot/
lib/
...
simple.txt
该文件simple.txt 对浏览器无法访问。原因是,假设启用了 mod_rewrite,所有请求都会被顶级 .htaccess 文件重写为 foo -> app/webroot/foo。
要使文件可访问,只需将其放在 webroot 中:
docroot
app
Config/
Controller/
Model/
Plugin/
Test/
tmp/
View/
webroot/
simple.txt <- moved
lib/
...
请注意,如果这是问题所在,您有一个development install - 使用生产安装会更好(让您的网络服务器指向 webroot 文件夹,而不是整个应用程序的根目录)。
【讨论】:
首先,将其添加为解析的扩展:
Router::parseExtensions('txt');
然后,创建一个连接路由:
Router::connect('/simple.txt', array('controller' => 'examplecontroller', 'action' => 'simple');
现在您将在examplecontroller 和simple.ctp 视图中的simple() 方法中控制http://yourproject.com/simple.txt 的输出。
这不是您指定的确切方式,但它确实有效,并且完成了“蛋糕方式”
【讨论】:
My cakePHP application *generates* a simple text file 暗示文件内容是动态的,不是静态的
这些 url ://simple.txt 对我来说似乎是错误的。应该是这样的:
://yourhost/yourproject/simple.txt
我通常可以在我本地的 cake php 项目中以这些方式访问它。
【讨论】: