私はec2のubuntuインスタンスにアップロードしたappフォルダー、index.phpなどを含むフォルダー名FCの下にcakephpプロジェクトを持っています。フォルダをアップロードすると、index フォルダが表示されていたので、FC 直下のコンテンツを www フォルダにアップロードして、index.php ファイルを自動的に取得できるようにしました。これで、Web サイトが表示され始めましたが、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 は、index.ctp を含む LocationsController にある複数のリンクにリダイレクトしますが、cake は FCController を見つけようとしています。慣習に合わせて、locationcont の名前を FCcont に変更する必要がありますか?
*ビューやコントローラーなどの内部の URL はすべて、「/FC/locations/...etc.」のように始まることがわかりました。ベース パス、つまり「/var/www/FC...」から URL を指定する必要がありますか?? *