私は Phalcon を初めて使用し、フレームワークは気に入っていますが、リンクに問題があります。phalcon バージョン 0.6.1 と、私の phalcon テストがある xampp/htdocs/test に vhosts が設定された XAMPP 1.8.1 を使用しています。
私はチュートリアルに従っていましたが、問題が発生しました。リンクを使用して他のコントローラーをロードすると、アドレスバーに正しいパスが表示されますが、毎回 index.phtml がロードされることがわかります。ここにファイルをアップロードしましたので、ご自分で確認してください。
Tag::LinkTo() を使用するかどうかは関係ありません。変更されないためです。
編集:
指示に従い、.htaccess ファイルを /test および /test/public ディレクトリから削除して、httpd.conf に移動しました。その最後に私は追加しました
<Directory "C:/xampp/htdocs/www/test"> RewriteEngine on RewriteRule ^$ public/ [L] RewriteRule (.*) public/$1 [L] </Directory> <Directory "C:/xampp/htdocs/www/test/public"> RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php?_url=/$1 [QSA,L] </Directory>
このように httpd-vhosts.conf を変更しました
ServerAdmin admin@example.host DocumentRoot "C:/xampp/htdocs/test/public" DirectoryIndex index.php ServerName example.host ServerAlias www.example.host <Directory "C:/xampp/htdocs/test/public"> Options All AllowOverride All Allow from all </Directory>
ページは読み込まれますが、/public/css/bootstrap.min.css のような絶対リンクが機能せず、リンクをクリックするとエラー 404 が表示され、オブジェクトが見つかりませんと表示されます。次のようにファイルを変更しました。
<Directory "C:/xampp/htdocs/test"> RewriteEngine on RewriteRule ^$ public/ [L] RewriteRule (.*) public/$1 [L] </Directory> <Directory "C:/xampp/htdocs/test/public"> RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php?_url=/$1 [QSA,L] </Directory>
と
ServerAdmin admin@example.host DocumentRoot "C:/xampp/htdocs/test" DirectoryIndex index.php ServerName example.host ServerAlias www.example.host <Directory "C:/xampp/htdocs/test"> Options All AllowOverride All Allow from all </Directory>
しかし、リンクをクリックすると、URL に localhost:8005/sample と表示されていても index.phtml が再度読み込まれるという元の問題が発生します。