![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 0 Dołączył: 2.03.2011 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
W swoim projekcie używam sfImageTransformExtra plugin. Problem polega na tym, że lokalnie wszystko działa natomiast na serwerze produkcyjnym juz nie. Moje ustawienia: app.yml Kod sfImageTransformPlugin: mime_type: auto_detect: true library: gd_mime_type # gd_mime_type (GD), Fileinfo (PECL), MIME_Type (PEAR) font_dir: %SF_PLUGINS_DIR%/sfImageTransformExtraPlugin/data/example-resources/fonts routing.yml Kod sf_image: class: sfImageTransformRoute url: /uploads/avatars/thumbnails/:format/:filepath.:sf_format param: { module: sfImageTransformator, action: index } requirements: format: '[\w_-]+' filepath: '[\w/.]+' sf_format: 'gif|png|jpg' sf_method: [ get ] options: image_source: File image_location: %SF_ROOT_DIR% Wywoływanie obrazka: Kod echo image_tag(url_for('sf_image', array( 'format' => 'square100', 'filepath' => 'avatars/default')), array('class' => 'imgBorder')); Struktura projektu na serwerze: Kod --home ----user ------public_html --------projekt_symfony --------< tutaj wszystko to co znajduje się w projekcie: lib, apps itp. > --------web ----------uploads ------------avatars (stad pobieram plik graficzny np: default.jpg) --------------thumbnails (to jest folder w którym plugin ma cachować przekonwertowane grafiki) Na stronie otrzymuje taki url do img'a: Kod src="/projekt/web/uploads/avatars/thumbnails/square100/avatars/default.jpg" Ale problem polega na tym, że on tego obrazka nie widzi i nie cache'uje sobie transformacji. Gdy próbuję dostać się do obrazka poprzez url: http://strona/projekt/web/uploads/avatars/default.jpg to go widzi bez problemu. W settings.yml ustawiłem cache:true. Odpaliłem za pomocą cron'a: symfony cc, symfony project:publish-assets, symfony transforms:check-caching frontend. Z tego ostatniego otrzymałem pozytywną odpowiedź, że wszystko jest ustawione jak należy i ewentualny problem jest w uprawnieniach. Siedzę nad tym już 5 godzin i ni cholery nie wiem co jeszcze mogę mieć źle skoro na localu wszystko działa... Help ! |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 53 Pomógł: 7 Dołączył: 10.03.2011 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Z tego ostatniego otrzymałem pozytywną odpowiedź, że wszystko jest ustawione jak należy i ewentualny problem jest w uprawnieniach. Skoro problem jest w uprawnieniach, to może trzeba je zmienić? ![]() A gdy użyjesz ścieżki bezwzględnej w url_for, obrazek się wyświetla? |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 0 Dołączył: 2.03.2011 Ostrzeżenie: (0%) ![]() ![]() |
Uprawnienia mam 777 na cały folder web/ i nic to nie pomogło. Tak samo ze ścieżką bezwględną. Może nie widzi w parametrze 'filepath' => '...' tego pliku. Już sam nie wiem...
EDIT: Dodałem do filepath ścieżkę bezwzględną przez którą znajduje obrazek w url'u, ale nic to nie pomogło. Czy może być to spowodowane tym, że na serwerze mam php 5.2 a lokalnie 5.3 ? Ten post edytował evertras 6.04.2011, 10:05:42 |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 879 Pomógł: 189 Dołączył: 14.06.2006 Skąd: Bytom Ostrzeżenie: (0%) ![]() ![]() |
Wersja php nie ma znaczenia. Czy lokalnie też masz taki układ, że domena nie wskazuje bezpośrednio na katalog web (tzn. czy lokalnie ustawiłeś VirtualHost)?
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 0 Dołączył: 2.03.2011 Ostrzeżenie: (0%) ![]() ![]() |
Lokalnie mam virtual host'a i domena wskazuje bezpośrednio do web/.
Edit: Utworzyłem nowy czysty projekt z samym pluginem i postawiłem virtual hosta symulującego ten na serwerze (domena/projekt/web/) i też mi nie wyświetla obrazków lokalnie. Problem musi polegać przy zapisie bo potem odwołuje się do zapisanego obrazka z folderu thumbnails ale jego tam nie ma. |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 53 Pomógł: 7 Dołączył: 10.03.2011 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Stwórz sobie taką klasę
i w routingu options: image_source: File zmień File na MyFile. U mnie dopiero z tym zadziałało. |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 121 Pomógł: 2 Dołączył: 22.03.2009 Ostrzeżenie: (0%) ![]() ![]() |
Pozwolę sobie odświeżyć temat.
Mam podobny problem, wszystko działa w dev, natomiast w prod już pokazuje się error 500, ze nie moze znalezc obrazka. Ten post edytował janek9 18.07.2011, 16:34:30 |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 395 Pomógł: 80 Dołączył: 24.08.2009 Ostrzeżenie: (0%) ![]() ![]() |
Najczęściej w takim przypadku pomaga czyszczeniu cache, ale jeśli nie pomogło warto sprawdzić co zanotowane jest w logach apacha.
-------------------- |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 121 Pomógł: 2 Dołączył: 22.03.2009 Ostrzeżenie: (0%) ![]() ![]() |
Najczęściej w takim przypadku pomaga czyszczeniu cache, ale jeśli nie pomogło warto sprawdzić co zanotowane jest w logach apacha. clear cache jest co chwile robiony, natomiast logi apache pokazuja: sfImageTransformator is not enabled - ale on jest włączony w settings, i w tasku od tego pluginu nie wykrywa żadnych błedow. Szczerze mowiac nie mam pojecia co to moze byc za problem.. |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 53 Pomógł: 7 Dołączył: 10.03.2011 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Skoro Apache mówi, że nie aktywowałeś tego modułu, to znaczy, że tego nie zrobiłeś
![]() Przczytaj http://www.symfony-project.org/book/1_2/05...e_killed_my_app http://www.symfony-project.org/book/1_2/05...uration_cascade i jeszcze raz dokładnie przeanalizuj swój settings.yml |
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 121 Pomógł: 2 Dołączył: 22.03.2009 Ostrzeżenie: (0%) ![]() ![]() |
@jaro87: Dzięki za wskazówki, problem leżał po stronie odblokowania modułu w moim przypadku w obu aplikacjach ponieważ przekierowuję po .htaccess do odpowiedniej aplikacji
![]() Po prawie 10h spędzonych nad tą wtyczką, rozwiązałem problem: 1. W templatce, przy definiowaniu wartości klucza filepath, należy nie podawać żadnych dodatkowych ścieżek - tylko nazwę pliku bądź obiekt 2. Plik routing.yml wtyczki zostawiamy tak jak jest "fabrycznie" 3. W pliku app.yml wtyczki sfImageTransformPlugin, ustawiamy z false na true pozycję: mime_detect (mime_detection) 4. W konsoli dajemy: symfony project:permissions i cache:clear, a następnie: symfony transforms:check-caching backend --env=[prod] 5. Sprawdzamy ustawienia chmodów, ewentualnie zmiana grupy z root na users w przypadku linuxa 6. Jeżeli nadal nic to nie da, należy odinstalować wtyczkę za pomocą komendy: symfony plugin:uninstall symfony/sfImageTransformExtraPlugin i ponownie ją zainstalować, w konsoli: publish-assets i cache:clear W razie problemów, śmiało pisać na PW lub w tym wątku. Matt |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 06:38 |