2012-01-05 55 views
0

我使用谷歌搜索和谷歌搜索,並找不到我需要的。symfony2中的.js文件中的網頁目錄和資產的路徑

如何獲得路徑 「網絡」 目錄中的Symfony2在

  • 行動[不知道,我只爲老版本的symfony找到解決方案:
    $ sf_relative_url_root = sfContext ::的getInstance() - > Request()方法 - > getRelativeUrlRoot();
    我試過也$這 - >獲取( 'security.context') - > Request()方法 - > getRelativeUrlRoot(),但它不工作]

  • js文件

在.js文件我現在做的樹枝模板類似的東西的情況下:

<script type="text/javascript"> 
var asset_url="{{asset(' ')}}"; 
asset_url = asset_url.substr(0, asset_url.length-1); 
</script> 
<script href="{{asset('js/script.js')}}" type="text/javascript"></script> 

是一個更好的辦法?

+0

我不明白,爲什麼你需要第一個JavaScript代碼?爲什麼不使用{{asset('js/script.js')}}?它應該工作得很好.. – Inoryy 2012-01-05 13:10:09

+0

你確定這是一個關於Symfony2的問題嗎? – 2012-01-05 14:23:30

+0

第一個js代碼被寫入,因爲我不能在.js文件中使用{{asset('smth')}}並且我問如何做到這一點。 @elnur:在第一點的情況下,我這麼認爲。 – 2012-01-05 14:42:54

回答

1

如果我正確理解您的問題,那麼您在控制器類中尋找的是$this->getRequest()->getUri()

看看Symfony\Component\HttpFoundation\Request這個課,如果不是的話,你很可能會在那裏找到它。

+0

差不多,它返回: HTTP://localhost/project/main/app_dev.php/action/ 我想只有 的http://本地主機/項目/主/ 但是很容易削減:) 第二個問題離開[js文件] - 有更好的方法嗎? – 2012-01-05 17:15:03

+2

也許'Request :: getBasePath()'然後呢?至於.js我能想到的最簡單的方法是在你的parameters.ini中設置base_url參數,那麼你可以在任何時候以twig變量的形式訪問它。它也適用於控制器 – Inoryy 2012-01-05 18:31:41

+0

謝謝!實際上它應該是$ this-> getRequest() - > getBasePath()。 在js文件的情況下,我不能在.js文件中使用樹枝的東西,如果我可以使用{{asset('smth')}} – 2012-01-05 21:54:22