2016-04-02 58 views
1

我一直在嘗試一些Symfony的組件,它會比較好。我想通了,一幫谷歌搜索後,我需要的.htaccess文件變成至少這是爲了它的工作:.htaccess應該如何看起來像Symfony路由

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

但是現在每當我想要做一個header()呼叫或有img/script/stylesheet標記我需要在輸入路徑之前有../。當我有一個變量名(例如路徑如下所示: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

使用[asset](http://symfony.com/doc/current/components/asset/introduction.html)組件來管理映像的URL生成,並使用路由器組件生成某些路徑的路徑。你是使用完整的堆棧框架,還是隻使用一些選定的組件? – Federkun

+0

@Federico我正在使用路由和http基礎組件。所以我必須爲此使用資產組件? – Tritzium

回答

0

所以我解決了這個問題,通過添加來自Symfony的Asset組件並創建一個PathPackage,該PathPackage通過指向根並進一步放到Web文件夾中開始。

$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>; 

無論如何,這是我如何解決它。如果有人知道更好的方法,隨時告訴我。這將非常感激。

相關問題