2016-04-02 5 views
1

私はSymfonyのコンポーネントのいくつかを試してきましたが、比較的うまく行っています。私はそれが動作するためには、少なくともこのに.htaccessファイルを変更する必要があると、グーグルの束の後、考え出し:Symfonyルーティングの.htaccessはどのように見えるのですか

<IfDefine APACHE2> 
    AcceptPathInfo on 
</IfDefine> 
<Files "index.php"> 
    Options +Includes 
    SetOutputFilter INCLUDES 
    AcceptPathInfo On 
</Files> 

しかし、今、私はheader()呼び出しを行うか、持っているしたいときimg/script/stylesheetタグパスを入力する前に../が必要です。そして、私はvariablename(パスは次のようになります:index.php/article/32のように)私は../../の前に彼がsrcやhrefにパスの残りの部分を入力する必要があります。
私の.htaccessファイルを間違って設定したのですか、それとも何か他に必要なことはありますか?

だから、imgタグは次のようになります:プレースホルダブツ内の変数があるときのために

<img href="../../PATH_TO_IMAGE"> 

:何のプレースホルダが存在しないときのためにこのような

<img href="../PATH_TO_IMAGE"> 

私はそれがこのようにすべきではないと考えているからです。
私のルーティングは、次のようになります。

$routes = new RouteCollection(); 
$routes->add('loginuser', new Route('/login', array('controller' => 'registeruser', 'permission' => Permissions::$public))); 

(私はいくつかのウェブサイト上のチュートリアルに従って、悲しいことに、私は今それを見つけるように見えることはできません)

編集:私は唯一のルーティングを使用していますコンポーネントとHttpファンデーションコンポーネントです。

ありがとうございます!

+0

[アセット](http://symfony.com/doc/current/components/asset/introduction.html)コンポーネントを使用して画像のURL生成を管理します。ルータコンポーネントはルートのパスを生成します。完全なスタックフレームワークを使用していますか、または選択したコンポーネントの一部のみを使用していますか? – Federkun

+0

@Federico私は、ルーティングとhttpファンデーションのコンポーネントを使用しています。だから私はこれのための資産コンポーネントを使用する必要がありますか? – Tritzium

答えて

0

私はSymfonyのAssetコンポーネントを追加し、ルートを指してさらにWebフォルダに入ることで始まるPathPackageを作成することでこれを解決しました。

$package = new PathPackage('/ENTER_FURTHER_PATH_HERE/', new EmptyVersionStrategy()); 

echo '<img src="'. $package->getUrl('Images/icon.png') . '">'; 
echo '<a href="' . $package->getUrl('index.php/WHATEVER') . '">Link name</a>'; 
echo '<a href="' . $package->getUrl('index.php') . '">Home</a>'; 
echo '<script src="'. $package->getUrl('Scripts/JAVASCRIPT_NAME') .'"></script>'; 
echo '<link src="'. $package->getUrl('CSS/STYLESHEET_NAME') .'">'; 

(あなたもPathPackageをスキップし、それは厳密には必要ではありません、このように行うことができます)

echo '<a href="/ENTER_FURTHER_PATH_HERE/index.php">Home</a>; 

とにかく、それは私がそれを解決した方法です。誰かがもっと良い方法を知っていれば、私に教えてください。非常に感謝しています。

関連する問題