PDA

Zobacz pełną wersję : Dlaczego SEF dodaje do linków początek aktualnej domeny z podstroną?



dimian
29-06-2018, 20:11
Dzień dobry,

Przepraszam że założyłem konto i od razu pytam ale mam pilny problem.

Przeniosłem dla klienta stronę kopiując ją 1:1 razem z bazą. Standardowa robota jakich robiłem wiele, jednak nie w tym przypadku.



Na podstronach nie ładowały się assety, ale przez FTP dodałem w wielu miejscach slash na początku i już się wyświetlają, natomiast linki dodane przez CMS nie działają poprawnie.

Będąc na: - domena.pl/podstrona/podstrona

Link do lokalnego PDF wyglada tak - domena.pl/podstrona/podstrona/instrukcje/instrukcja.pdf

A powinien wyglądać - domena.pl/instrukcje/instrukcja.pdf

Co prawda w tekście w CMS mam a href="instrukcje/instrukcja.pdf" ale to z tego powodu że jak dodaję / lub adres domeny to po zapisie joomla kasuje jedno albo drugie.

Dla testu wyłączyłem "proste adresy" czyli SEF i linki się poprawiły (nawet moje ręcznie poprawione style nadal działały poprawnie), ale zrobił się bałagan w adresie URL.



Dodatkowo:

Jest to najnowsza joomla

Jeszcze dzisiaj robiłem reinstalację plików corowych joomli.

Klient nie włączył "Zastosuj przepisywanie URL" przez co wszędzie miał domena.pl/index.php/podstrona poprawiłem.

Dla przykładu "poprawione style"


$doc->addStyleSheet('/templates/'.$this->template.'/css/magnific-popup.css'); $doc->addStyleSheet('/templates/'.$this->template.'/css/komento.css'); $doc->addStyleSheet('/templates/'.$this->template.'/css/kunena.css'); $doc->addStyleSheet('/templates/'.$this->template.'/css/responsive.css');

Podobny problem był w module "superfish" i mod_menu stópki strony i w nim też musiałem dodać slashe


Proszę pomocy.

dimian
02-07-2018, 00:22
Dziwne, zakładałem raczej że mam problem nowicjusza a tutaj nikt nie jest w stanie podpowiedzieć w którym kierunku się udać?

terra
02-07-2018, 08:15
To jest kwestia tego jak zadajesz pytanie. Nie wiadomo co przenosiłeś, gdzie jak, do tego podajesz informacje, że już wykonywałeś "ręczne" operacje poza Joomla itd.... Może warto było zadać te pytania wcześniej, zanim zacząłeś. Co to oznacza że skopiowałeś stronę 1:1 ? Jeśli coś przestało działać to na 100% nie wykonałeś operacji 1:1.

dimian
02-07-2018, 08:58
Przepraszam, wydawało mi się że napisałem to najprościej jak się da.

Co przeniosłem - zwykłe pliki joomli, nic nadzwyczajnego
Gdzie - z jednego serwera na drugi, ustawienia takie same za pomocą FTP
Jak - Kopiując pliki na serwerze i wklejając je na drugi za pomocą filezilli

Wykonałem "ręczne" operacje bo nie mogłem znaleźć odpowiedzi i nie spodziewałem się że utknę tylko na linkach w cms.

Skopiowałem stronę 1:1 oznacza że struktura, pliki, wielkość jest zachowana z oryginalnego serwera, ale widzę że jednak się domyśliłeś co to oznacza.

Aktualnie kopiuję stronę do innego hostingu, może ustawienia serwera są winne.

zwiastun
02-07-2018, 11:40
1. Do przenoszenia strony służą odpowiednie narzędzia, takie np. jak Akeeba Backup. Proponuję skorzystać.
2. Przeniesienie 1/1 plików nie może, jak się domyślasz, gwarantowac poprawnego działania, bo pewno w tych plikach, np. w configuration.php siedzą istotne informacje konfiguracyjne, odwołujące się do konkretnego serwera. Podejrzyj, sprawdź, popraw.
3. Zajmuję się Joomla od zarania i naprawdę nie wiem, co to znaczy "Na podstronach nie ładowały się assety, ale przez FTP dodałem w wielu miejscach slash na początku i już się wyświetlają". Skoro coś się nie łądowało, tzn. że raczej miałeś błąd w konfiguracji, a nie w samych adresach, które popoprawiałeś ręcznie, zamiast znaleźć przyczyne problemu. Efekt "assety" Ci się wyświetlają, jeno linki nie działają.
4. Pogrzebałeś sosbie odważnie w kodzie, popoprawiałes style, bo przecież wiesz, co robisz. A może jednak nie wiesz?

Zainstaluj na starej wersji Akleba Backup, wykonaj kopię, odtwórz w nowej lokalizacji i pewno wszystko będzie działać, skoro działało.

csthomas
02-07-2018, 13:58
Plugin do SEF raczej powinien zostać włączony. To on m.in. dodaje '/' do linków z artykułów.

Ręczne poprawianie linków, wydaje się nie najlepszą opcją i zostawiłbym ją na koniec.
Lepiej zadbaj o lepszą kopię, zajrzyj w generowane błędy php, może jakiś plugn przestał działać na nowej wersji.

Problem z linkami zazwyczaj może generować tag
<base>
W celu przetestowania, dodaj kod u góry w aktualnym szablonie /templates/[twoj_szablon]/index.php:

JFactory::getDocument()->setBase(''); // To usunie tag <base>

dimian
02-07-2018, 20:58
Dziękuję za wiadomości i skoro wszyscy polecacie "akeeba backup" to od następnego razu zacznę tego używać.

Zmieniłem domyślny edytor TinyMCE na ten w którym pisze się tylko w HTML i "/" na początku już nie znika dzięki czemu linki wyświetlają się poprawnie.

Wiem i rozumiem że za bardzo poleciałem z tą edycją plików i dodawanie "/" w kodzie, następnym razem już tak nie zrobię.

Temat można uznać za zamknięty.


Ps. Wydawało mi się to jasne: ""Na podstronach nie ładowały się assety, ale przez FTP dodałem w wielu miejscach slash na początku i już się wyświetlają"

Assety to inaczej zasoby strony czyli /js, /css, /png - https://parceljs.org/assets.html
Przez FTP, czyli w plikach strony dodałem / na początku czyli linijka z plikzcss/style.css zamieniłem na /plikzcss/style.css itd.

Jestem samoukiem i być może powielam złe nazewnictwo które gdzieś-kiedyś usłyszałem.

zwiastun
03-07-2018, 00:27
Assety to inaczej zasoby strony czyli /js,

Taka już moja natura :) polonisty i tłumacza. Oczywiście, domyśliłem się, co masz na myśli. Ale jesteśmy w Polsce. Informatycy mają tendencję do używania anglopolskiego bełkotu. Gdyby na to zezwolić, już dawno byśm,y się nie rozumieli. :)