PDA

Zobacz pełną wersję : [Rozwiązane] Brak slash'y w adresach URL



michu0074
18-03-2022, 19:12
Witam,
szukam po sieci już którąś godzinę, mam problem dotyczący adresów do skryptów oraz plików css. Mianowicie zauważyłem że automatycznie wczytane pliki z poziomu <jdoc:include np. head nie ładują w niektórych przypadkach "/"
w całym adresie, dla przykładu.





<script src="/mediasystemjskeepalive.min.js?20ace83a13886af1b0b5 f58386fd8adf33f586a3 (https://sanvita-rabka.pl/mediasystemjskeepalive.min.js?20ace83a13886af1b0b5 f58386fd8adf33f586a3)" type="module"></script>
<script src="/mediamod_menujsmenu-es5.min.js?c0dd02246d2c5224160fa71aba50f3ce" nomodule defer></script>




Czy ktoś spotkał się z podobnym problemem? Ewentualnie proszę o pokierowanie. Bardzo dziękuję za każdą możliwą odpowiedź.

siristru
18-03-2022, 19:18
Ale przecież masz slash w adresie... na początku tak jak powinno być :)
Numery po znaku ? możesz zignorować bo to nie jest część URL.
Czy brakuje części ścieżki?

michu0074
18-03-2022, 20:40
Dziękuję za odpowiedź,
doprecyzuję, "/" brakuje pomiędzy zapisem folderów.

Przykład obecny "/mediamod_menujsmenu-es5.min.js?c0dd02246d2c5224160fa71aba50f3ce", a powinien wyglądać "/media/mod_menu/js/menu-es5.min.js?c0dd02246d2c5224160fa71aba50f3ce"

siristru
18-03-2022, 23:11
Dobra, to zajrzyj do katalogu ROOT/templates/<twoj-szablon>/html czy masz tam katalog mod_menu.
Jeśli masz to zmień na chwilę jego nazwę na mod_menu-old i zobacz czy ładowanie tego skryptu się poprawiło.

michu0074
19-03-2022, 12:51
Niestety nie korzystam obecnie z nadpisywania w ten sposób. Problem jest z losowymi skryptami zewnętrznymi ale też tymi wbudowanymi np. modułem menu. Każdy który wprowadza skrypt ma problem z separatorem pomiędzy katalogami.

siristru
19-03-2022, 13:21
To dość dziwne bo przynajmniej jeden slash jest hardkodowany w pliku: ROOT/modules/mod_menu/tmpl/default.php


<?php
/**
* @package Joomla.Site
* @subpackage mod_menu
*
* @copyright (C) 2009 Open Source Matters, Inc. <https://www.joomla.org>
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/

defined('_JEXEC') or die;

use Joomla\CMS\Helper\ModuleHelper;

/** @var Joomla\CMS\WebAsset\WebAssetManager $wa */
$wa = $app->getDocument()->getWebAssetManager();
$wa->registerAndUseScript('mod_menu', 'mod_menu/menu.min.js', [], ['type' => 'module']);
$wa->registerAndUseScript('mod_menu', 'mod_menu/menu-es5.min.js', [], ['nomodule' => true, 'defer' => true]);

$id = '';

michu0074
19-03-2022, 15:43
Temat jest do zamknięcia :)

Znalazłem błąd - leżał on po stronie.. domeny. Błąd tyczył się wszystkich ścieżek generowanych przez <script> do plików - usuwając separatory, w momencie pracy na katalogach "produkcyjnych" błędów nie było - i system działał poprawnie, generując dobre linki. Rozwiązanie o dziwo było hmm trudne do wykrycia - w przekierowaniu domeny na serwer, wystarczyło ustawić "Przekierowanie bez separacji podkatalogu", i to rozwiązało błąd brakujących slashy.

Dziękuję siristru (http://forum.joomla.pl/member.php?20049-siristru) za odpowiedzi.