2015-09-09 135 views
0

我正在使用Assetic來管理我的Symfony2項目中的資產。在我使我的應用程序可以訪問域文件夾之前,它運行良好。資產和域文件夾

before : myapplication.local // Assetic works 

now : mydomain.local/myapplication // Assetic doesn't work 

所請求的css文件被調用,但過濾器cssrewrite爲該ressources寫入錯誤的路徑。

Error : NetworkError: 404 Not Found - http://www.mydomain.local/Resources/public/images/menu/nav-bg-1.png

The expected URL should looks like http://www.mydomain.local/myapplication/Resources/public/images/menu/nav-bg-1.png

這裏是我的Assetic呼叫

{% block stylesheets %} 
    {% stylesheets 
     '@Mybundle/Resources/public/css/myfile.css' filter='cssrewrite' %} 
      <link rel="stylesheet" href="{{ asset_url }}" /> 
    {% endstylesheets %} 
{% endblock %} 

我知道Assetic說不能用@使用cssrewrite時-naming。但它沒有域文件夾運行正常,並使用「捆綁/ mybundle/css/myfile.css」不能解決問題。

如果您需要更多信息,請問我;)。

謝謝你的時間和你的幫助。

+0

你有叫'cache:clear'和'assets:install'嗎? – Joshua

+0

是的,他們兩個都沒變,即使你回覆到不使用'@'的所需符號, –

+0

?你使用哪個確切的版本? – Joshua

回答

1

如文檔中所述,您應該使用不帶@的命名。此外,每次您更改任何內容時,您都需要通過資產轉儲您的資產。

轉儲assetic運行下一個命令:

php app/console assetic:dump 

php app/console assetic:dump --env=prod // To generate only files needed for production environment 
+0

問題仍然是相同的,路徑現在http://www.mydomain.local/bundles/mybundle/css/myfile.png,仍然缺少「/ myapplication」之間域和「/ bundles」。我早些時候嘗試過的時候也有同樣的事情。 –

0

我設法去除cssrewrite過濾器,並把我所有的圖片,字體等,以定勢這個問題在...網頁/圖片或網頁/字體等...然後在我的CSS中,我所有的路徑都像「../folder/file」

+0

你還在使用資產嗎? –

+0

是的Assetic仍在運行 –

0

您可以在您的app/config/config * .yml中定義assets base URL文件:

dev環境:應用程序/配置/ config_dev.yml

framework: 
    templating: 
     engines: ['twig'] 
     assets_base_urls: 
      http: [http://www.mydomain.local/myapplication/] 

prod環境:應用程序/配置/ config_prod.yml

framework: 
    templating: 
     engines: ['twig'] 
     assets_base_urls: 
      http: [http://www.example.com/static/] 

cssrewrite過濾器應從URL中刪除Resources/public/