Okej - wiem, że to naprawdę elementarna sprawa, ale nie mogę tego rozgryźć. To jest pytanie dotyczące Laravel.
Zasadniczo mam swoje arkusze stylów osadzone w moim domyślnym widoku układu. Obecnie używam zwykłego css, aby je połączyć, na przykład:
<link rel="stylesheet" href="css/app.css" />
Działa świetnie, gdy jestem na trasie jednopoziomowej, takiej jak / about , ale przestaje działać, gdy idę głębiej, na przykład / about / me .
Jeśli spojrzę na konsolę programisty Chrome, widzę niektóre z następujących błędów (tylko dla głębszych tras):
Resource interpreted as Stylesheet but transferred with MIME type text/html: "http://example.dev/about/css/app.css".
Tak więc najwyraźniej szuka teraz css w folderze „about” - który oczywiście wcale nie jest folderem.
Chcę tylko, żeby szukał zasobów w tym samym miejscu, niezależnie od trasy.
asset()
natychmiastowej metody pomocniczejURL::asset()
. Robi to samo.Laravel 4
Lepszy i poprawny sposób na zrobienie tego
Dodawanie CSS
HTML :: style będzie prowadzić do twojego projektu / publicznego / folderu
Dodanie JS
HTML :: script połączy się z twoim projektem / publicznym / folderem
źródło
Używasz ścieżek względnych dla swoich zasobów, zmień na ścieżkę bezwzględną i wszystko będzie działać (dodaj ukośnik przed „css”.
źródło
w laravel 5 ,
istnieją 2 sposoby, aby załadować plik JS w widoku
pierwszy wykorzystaniem HTML pomocnika, drugi jest przy użyciu pomocników aktywów.
aby użyć pomocnika html, musisz najpierw zainstalować ten pakiet za pomocą wiersza poleceń:
następnie musisz go ponownie uruchomić, przejdź do config / app.php i dodaj tę linię do tablicy dostawców
następnie musisz zdefiniować aliasy dla swojego pakietu html, więc przejdź do tablicy aliasów w config / app.php i dodaj to
teraz twój pomocnik html jest zainstalowany, więc w plikach widoku blade możesz napisać to:
to będzie szukać twojego pliku test.js w katalogu katalog_główny_projektu / public / js / test.js.
////////////////////////////////////////////////// ////////////
aby użyć pomocników zasobów zamiast pomocnika HTML, musisz napisać coś takiego w swoich plikach widoku:
spowoduje to wyszukanie pliku test.js w katalogu katalog_główny_projektu / zasoby / zasoby / test.js
źródło
<script src="{{ url(asset('test.js')) }}"></script>
(lub<script src="{{ url(mix('test.js')) }}"></script>
jeśli używasz Laravel Mix).Jeśli używasz Laravel 3 i plików CSS / JS w folderze publicznym w ten sposób
wtedy możesz do nich zadzwonić, używając w takich szablonach Blade'a
źródło
Sugeruję, abyś wcześniej włączył filtr tras do {projekt} /application/routes.php
i używając silnika szablonów ostrzy
lub więcej w dokumentacji laravel management asset docs
źródło
w
laravel 4
wystarczy wkleić w{{ URL::asset('/') }}
ten sposób:To samo dotyczy:
źródło
Laravel 5.4 z pomocnikiem mieszania:
źródło
W Laravel 5.7 umieść plik CSS lub JS w katalogu publicznym.
W przypadku CSS:
Dla JS:
źródło
Moim zdaniem najlepszy sposób na dodanie tagu BASE do HTML
Nie jest więc konieczne używanie takich rzeczy jak
po prostu wpisz
Twoim zdaniem i będzie działać.
Ta metoda zajmie się adresami URL RESTful i zasobami statycznymi, takimi jak obrazy, css, skrypty.
źródło
Vinsa prawie miała rację, powinieneś dodać
a skrypty powinny iść swoją zwykłą ścieżką
powodem tego jest to, że obrazy i inne rzeczy ze ścieżką względną, takie jak źródło obrazu lub żądania AJAX, nie będą działać poprawnie bez dołączonej ścieżki podstawowej.
źródło
Jeśli robisz to na stałe, prawdopodobnie powinieneś użyć pełnej ścieżki (
href="http://example.com/public/css/app.css"
). Oznacza to jednak, że będziesz musiał ręcznie dostosować adresy URL na potrzeby programowania i produkcji.Alternatywą dla powyższych rozwiązań byłoby użycie
<link rel="stylesheet" href="URL::to_asset('css/app.css')" />
w Laravel 3 lub<link rel="stylesheet" href="URL::asset('css/app.css')" />
Laravel 4. To pozwoli ci napisać HTML tak, jak chcesz, ale także pozwoli Laravelowi wygenerować odpowiednią ścieżkę dla ciebie w dowolnym środowisku.źródło
Lepszy sposób na użycie takich jak,
źródło
Załóżmy, że nie zmieniłeś nazwy swojego folderu publicznego. Twoje pliki css i js znajdują się w podfolderach css i js w folderze publicznym. Teraz twój nagłówek będzie wyglądał następująco:
źródło
Po prostu dodaj kolejny problem:
Jeśli chcesz usunąć
/public
z projektu za pomocą.htaccess
,możesz tego użyć, [Dodaj
public
przed/css
wnętrzemasset()
][Czasami jest to przydatne.]
źródło
Laravel 4: {!! dla podwójnego nawiasu klamrowego {{
i dla wersji Laravel 5 i nowszych: możesz zamienić {!! autorstwa {{i !!} by}} w wyższej wersji
Jeśli umieściłeś JavaScript w niestandardowym katalogu.
Na przykład, jeśli twój
jQuery-2.2.0.min.js
jest umieszczony w katalogu,resources/views/admin/plugins/js/
to z poziomu*.blade.php
będziesz mógł dodać na końcu sekcji jakoPonieważ wersja Higher-End obsługuje również wersję Lower-End, ale nie odwrotnie
źródło
Lepszy i poprawny sposób na zrobienie tego:
źródło
W Laravel 5.8
właśnie zrobił dla mnie sztuczkę.
źródło
umieść plik skryptu w katalogu publicznym, a następnie użyj (na przykład dla userFunctions.js)
źródło