我在文件夹名称 FC 下有一个 cakephp 项目,其中包含我在 ec2 上的 ubuntu 实例上上传的 app 文件夹、index.php 等。当我上传文件夹时,它显示 index 文件夹,所以我将 FC 下的内容直接上传到 www 文件夹,这样它就可以自动获取 index.php 文件。现在网站开始显示,但很简单,没有 css 或图像或 js。我查看了错误日志,它显示的是:
[2013 年 8 月 28 日星期三 14:15:56] [错误] [客户端 xxxxxxxxxxxxxxxxx] 文件不存在:/var/www/js,引用者:http: //xxxxxxxxxxxxxxxxxxxxxxxx.compute.amazonaws.com/
[2013 年 8 月 28 日星期三 14:15:56] [错误] [客户端 xxxxxxxxxxxxxxxxx] 文件不存在:/var/www/js,引用者:http: //xxxxxxxxxxxxxxxxxxxxxxxx.compute.amazonaws.com/
显然,这表明路径设置不正确。现在我为我的 js 和图像提供的路径在 webroot 文件夹中,所以我的图像在 img 文件夹中,js 在 webroot 下的 js 文件夹中,所以路径我只提供“filename.whatever”,并且在 localhost 上运行良好。我需要如何设置路径以便它们指向正确的位置?当我检查一个拙劣的图像上的元素时,它显示路径 /img/xxxx.jpg。这意味着蛋糕会自动进入 image/js/css 文件夹,这就是我的代码在本地机器上的工作方式。现在,当我手动提供路径时,例如 /www/app/webroot/img/xxx.jpg,它会像这样附加它:img/www/app/...等。请帮忙!是否有可用的文档,或者是否有人以前这样做过?
编辑: webroot/index.php:
if (!defined('DS')) {
define('DS', DIRECTORY_SEPARATOR);
}
define('ROOT', '/var/www/FC');
define('APP_DIR', 'app');
define('CAKE_CORE_INCLUDE_PATH', DS . 'var' . DS . 'www' . DS . 'FC' . DS . 'lib');
以下是 INDEX.PHP 的标准内容,其内容不得更改
网站可用/默认:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/FC/app/webroot
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
<Directory /var/www>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride All
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride All
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
</VirtualHost>
顺便说一句,我的 Index.ctp 重定向到位于 LocationsController 中的多个链接,包括 index.ctp,而 cake 试图找到 FCController。我是否需要将 locationcont 重命名为 FCcont 以匹配约定?
*我刚刚发现,视图和控制器等中的 url 都以这样的 '/FC/locations/...etc.' 开头 我需要从基本路径中提供 url,即 '/var/www/FC...' 吗?*