2012-03-19 67 views
0

我正在嘗試一個網站,我正在努力並使其適應於使用symfony框架,但我在web開發方面相當新,並且有一堆問題。Symfony 2資產項目佈局和資源管理

  1. 我有一個非常困難的時間讓我所有的資源加載正確。我試圖使用資產,但無論我嘗試什麼,當我加載頁面時,我都會收到數百個404未找到響應。我現在的目錄結構如下:

  • Symfony的
    • SRC
      • CS4750
        • PhotoChallengeBundle
          • 控制器
          • 回覆來源
            • 配置
            • 公共
              • CSS
              • IMG
              • JS
                • LibraryX
                  • CSS
                  • IMG
                  • JS
            • 視圖

我現在最大的問題是在css文件中的圖像。我一直在使用

filters: 
    cssrewrite: ~ 

嘗試,但所有的路徑都指向的http://localhost/Symfony/web/bundles/cs4750photochallenge/imghttp://localhost/Symfony/web/Resources/public/img/*代替 我第一次嘗試沒有做資產:安裝網絡,然後用這樣但無論那些似乎有所作爲。如果有人幫助我完成這個工作,那真是太棒了。

  1. 我遇到的另一個問題是與一個css文件導入兩個額外的css文件。當頁面加載額外的CSS文件時也返回404響應。

  2. 是什麼資產之間的區別:安裝和資產:轉儲

  3. 我也有我的js的一個文件返回服務器錯誤500,但我解決它一樣的js文件的剩餘部分,其似乎工作正常。

任何上述問題的答案將非常感激或鏈接到相關的網站/職位。我一直在網上挖掘幾個小時,並沒有真正取得進展。如果您需要我更詳細地發佈和編寫或描述我的項目佈局,請告訴我。

更多信息:

Example of css files: 


/* IMPORTS ------------------------------------------------------------*/ 

    @import url('reset.css'); 
    @import url('styled-elements.css'); 
    /* HACKS ------------------------------------------------------------*/ 

    .clear { 
     clear: both; 
     height: 1px; 
    } 
    body { 
     line-height: 1; 
     color: #51565b; 
     background: #f1f1f1 url(../img/bg/patterns/noise.png); 
     font-family: Arial, Helvetica, sans-serif; 
     font-size: 100%; 
} 

Config_dev.yml:

imports: 
    - { resource: config.yml } 

framework: 
    router: { resource: "%kernel.root_dir%/config/routing_dev.yml" } 
    profiler: { only_exceptions: false } 

web_profiler: 
    toolbar: true 
    intercept_redirects: false 

monolog: 
    handlers: 
     main: 
      type: stream 
      path: %kernel.logs_dir%/%kernel.environment%.log 
      level: debug 
     firephp: 
      type: firephp 
      level: info 

assetic: 
    use_controller: true 
    filters: 
     cssrewrite: ~ 

模板:

<!DOCTYPE html> 
<html> 
    <head> 
     <meta charset="utf-8"> 
     <title>Weekly Photo Challenge</title> 
     <!-- CSS --> 
     {% stylesheets 
      '@CS4750PhotoChallengeBundle/Resources/public/css/*' 
      '@CS4750PhotoChallengeBundle/Resources/public/libraries/fancybox/css/*' 

      filter='cssrewrite' 
     %} 
      <link rel="stylesheet" type="text/css" media="screen" href="{{ asset_url }}" /> 
     {% endstylesheets %} 

     <!-- JAVASCRIPT --> 
     {% javascripts 
      '@CS4750PhotoChallengeBundle/Resources/public/js/jquery-1.5.1.min.js' 
      '@CS4750PhotoChallengeBundle/Resources/public/js/*' 
      '@CS4750PhotoChallengeBundle/Resources/public/js/ajax/*' 
      '@CS4750PhotoChallengeBundle/Resources/public/libraries/fancybox/js/*' 

     %} 
      <script type="text/javascript" src="{{ asset_url }}"></script> 
     {% endjavascripts %} 
+0

這工作對我來說:http://stackoverflow.com/a/12066577/1516791 – ChocoDeveloper 2012-08-22 05:21:03

回答

-1

隨着你的CSS文件的相對鏈接和CSS重寫過濾器,並轉儲資產,它應該沒有問題的工作。

你應該在你的樹枝文件中使用的過濾器:

{% stylesheets '@PhotoChallengeBundle/Resources/public/css/*' filter='cssrewrite' %} 
    <link rel="stylesheet" type="text/css" media="screen" href="{{ asset_url }}" /> 
{% endstylesheets %} 

您可以檢查Assetic entry in the cookbook詳細insturctions。

+0

當我做資產:只轉儲js和css文件夾移動到web目錄,img目錄和js和css文件它們在LibraryX文件夾中沒有。我需要手動移動它們嗎?如果是這樣的話,web文件夾中的目錄結構應該如何保存這些其他文件?資產到底是什麼:轉儲如何決定要移動的文件?感謝您的幫助! – Nath5 2012-03-19 00:53:00

+0

您不應該手動移動任何IMO,但現在沒有時間去查看。如果沒有人在我面前做,我會盡力回答明天。 – 2012-03-19 00:56:57

+0

謝謝!我現在再給它一次,讓你知道發生了什麼!在我的css文件的url(../ img/bg/patterns/noise.png)會這樣工作還是有我應該使用的特殊路徑。同樣的東西進口@import url('reset.css'); – Nath5 2012-03-19 01:01:41

2

我已經創建了一個小捆FkrCssURLRewriteBundle它解決了這個問題。閱讀自述文件的工作原理。也許這對你們中的一些人很有意思。