Está bien, sé que este es un problema realmente elemental, pero no puedo resolverlo. Esta es una pregunta sobre Laravel.
Básicamente, tengo mis hojas de estilo incrustadas en mi vista de diseño predeterminada. Actualmente solo estoy usando CSS normal para vincularlos, como:
<link rel="stylesheet" href="css/app.css" />
Funciona muy bien cuando estoy en una ruta de un solo nivel, como / about , pero deja de funcionar cuando profundizo, como / about / me .
Si miro la consola de desarrollador de Chrome, veo algunos de los siguientes errores (solo para las rutas más profundas):
Resource interpreted as Stylesheet but transferred with MIME type text/html: "http://example.dev/about/css/app.css".
Así que claramente ahora está buscando el CSS dentro de la carpeta "about", que por supuesto no es una carpeta en absoluto.
Solo quiero que busque en el mismo lugar los activos independientemente de la ruta.
asset()
método auxiliar instantáneo deURL::asset()
. Hace el mismo trabajo.Laravel 4
La forma mejor y correcta de hacer esto
Añadiendo CSS
HTML :: style se vinculará a su proyecto / carpeta pública /
Añadiendo JS
HTML :: script se vinculará a su proyecto / carpeta pública /
fuente
Está utilizando rutas relativas para sus activos, cambie a una ruta absoluta y todo funcionará (agregue una barra antes de "css".
fuente
en Laravel 5 ,
hay 2 formas de cargar un archivo js en su vista,
primero con ayuda de html y, en segundo lugar, con ayuda de activos.
para usar html helper, primero debe instalar este paquete a través de la línea de comandos:
luego debe volver a registrarlo, así que vaya a config / app.php y agregue esta línea a la matriz de proveedores
luego debe definir alias para su paquete html, así que vaya a la matriz de alias en config / app.php y agregue esto
ahora su html helper está instalado, por lo que en sus archivos de vista de hoja puede escribir esto:
esto buscará su archivo test.js en su project_root / public / js / test.js.
//////////////////////////////////////////////////// ////////////
para usar asistentes de activos en lugar de html, debe escribir algo como esto en sus archivos de vista:
esto buscará el archivo test.js en project_root / resources / assets / test.js
fuente
<script src="{{ url(asset('test.js')) }}"></script>
(o<script src="{{ url(mix('test.js')) }}"></script>
si está usando Laravel Mix).Si está utilizando Laravel 3 y sus archivos CSS / JS dentro de una carpeta pública como esta
entonces puedes llamarlos usando plantillas Blade como esta
fuente
Te sugiero que lo pongas en el filtro de ruta antes en {proyecto} /application/routes.php
y usando el motor de plantilla de hoja
o más sobre documentos de gestión de activos de laravel
fuente
en
laravel 4
solo tienes que pegar de{{ URL::asset('/') }}
esta manera:Es lo mismo para:
fuente
Laravel 5.4 con ayuda de mezcla:
fuente
En Laravel 5.7, coloque su archivo CSS o JS en el directorio público.
Para CSS:
Para JS:
fuente
En mi opinión, la mejor manera es agregar la etiqueta BASE en su HTML
Entonces no es necesario usar cosas como
Sólo tipo
en su opinión y funcionará.
Este método se ocupará de las URL RESTful y los recursos estáticos como imágenes, css, scripts.
fuente
Vinsa casi lo hizo bien, deberías agregar
y los scripts deben seguir su ruta habitual
la razón de esto es porque las imágenes y otras cosas con una ruta relativa como la fuente de la imagen o las solicitudes ajax no funcionarán correctamente sin la ruta base adjunta.
fuente
Si lo codifica de forma rígida, probablemente debería utilizar la ruta completa (
href="http://example.com/public/css/app.css"
). Sin embargo, esto significa que tendrá que ajustar manualmente las URL para desarrollo y producción.Una alternativa a las soluciones anteriores sería usarla
<link rel="stylesheet" href="URL::to_asset('css/app.css')" />
en Laravel 3 o<link rel="stylesheet" href="URL::asset('css/app.css')" />
en Laravel 4. Esto te permitirá escribir tu HTML de la manera que quieras, pero también permitirá que Laravel genere la ruta adecuada para ti en cualquier entorno.fuente
Mejor forma de usar me gusta,
fuente
Suponga que no ha cambiado el nombre de su carpeta pública. Sus archivos css y js están en las subcarpetas css y js de la carpeta pública. Ahora tu encabezado será:
fuente
Solo agregue otro problema:
Si desea eliminar
/public
de su proyecto usando.htaccess
,entonces puedes usar esto, [Agregar
public
antes/css
adentroasset()
][A veces, es útil].
fuente
Para Laravel 4: {!! para una llave doble {{
y para Laravel 5 y versiones superiores: puede reemplazar {!! por {{y !!} por}} en la versión de gama alta
Si ha colocado JavaScript en un directorio definido personalizado.
Por ejemplo, si su
jQuery-2.2.0.min.js
se coloca en el directorio,resources/views/admin/plugins/js/
entonces*.blade.php
podrá agregar al final de la sección comoDado que la versión Higher-End también es compatible con la versión Lower-End y no al revés
fuente
La forma mejor y correcta de hacer esto:
fuente
En Laravel 5.8
me acaba de hacer el truco.
fuente
coloque su archivo de script en el directorio público y luego use (por ejemplo, para userFunctions.js)
fuente