Acabo de comenzar a aprender Laravel y puedo hacer los conceptos básicos de un controlador y enrutamiento.
Mi sistema operativo es Mac OS X Lion y está en un servidor MAMP.
Mi código de route.php:
Route::get('/', function() {
return View::make('home.index');
});
Route::get('businesses', function() {
return View::make('businesses.index');
});
Route::get('testing', function() {
return View::make('testing.index');
});
Route::get('hello', function() {
return "<h3>Hello world!</H3>";
});
Eso funciona, las vistas se muestran perfectamente, '' sin embargo '' lo que quiero intentar y hacer es incluir CSS dentro de las vistas, intenté agregar un enlace a una hoja de estilo dentro del directorio, pero la página lo mostró como la fuente predeterminada del navegador incluso aunque el CSS estaba en HTML!
Este es index.php de las empresas dentro de la carpeta de vistas:
<head>
<link rel="stylesheet" type="text/css" href="mystyle.css">
</head>
<p>Business is a varied term. My content here.
Intenté usar el motor de plantilla Blade en mi carpeta de otras vistas (prueba) para mostrar CSS, ¡pero nuevamente el CSS no se mostró a pesar de estar en la carpeta de prueba!
¿Cómo puedo superar este problema y mejorar, mientras estoy aprendiendo lentamente este marco?
fuente
{{ URL::asset('css/css.css') }}
Respuestas:
Pon tus activos en la carpeta pública
Y lo llamaron usando Laravel
fuente
Pon tus activos en la carpeta pública
Y luego lo llamo usando Laravel
(O)
fuente
{{ URL::asset('js/scrollTo.js'); }}
? ¿Puede dar un ejemplo?su archivo css pertenece a la carpeta pública o una subcarpeta de la misma.
fe si pones tu css en
usarías
En tu vista de hoja ...
O también puede usar la clase de activos http://laravel.com/docs/views/assets ...
fuente
También puede escribir una etiqueta de enlace simple como lo haría normalmente y luego usar el atributo href:
por supuesto, debe poner su archivo css en public / css
fuente
Podemos hacer esto de la siguiente manera.
Buscará el archivo de estilo en la carpeta pública de Laravel y luego lo renderizará.
fuente
http
enlazas la hoja de estilo sobre <link href = "{{{asset ('/ css / style.css')}}}" rel = "stylesheet"> pero si estás usandohttps
entonces el la solicitud se bloqueará y aparecerá un error de contenido mixto. Para usarlo en https, debe usarsecure_asset
como <link href = "{{{secure_asset ('/ css / style.css')}}}" rel = "stylesheet" > laravel.com/docs/5.1/helpers#method-secure-assetComo mencionó Ahmad Sharif, puede vincular la hoja de estilo sobre
http
pero si está utilizando
https
, la solicitud se bloqueará y aparecerá un error de contenido mixto, para usarlo en https, usesecure_asset
comohttps://laravel.com/docs/5.1/helpers#method-secure-asset
fuente
public/css
oresources/assets/css
Desde Laravel 5, la
HTML
clase ya no se incluye por defecto.Puede hacer uso de la siguiente línea para incluir sus archivos CSS o JS:
fuente
Actualización para laravel 5.4 ----
Todas las respuestas han usado la clase HTML para laravel, pero supongo que ahora se ha depreciado en laravel 5.4, así que coloque sus archivos css y js en public-> css / js y haga referencia a ellos en su html usando
fuente
Eso no es posible hermano, Laravel asume que todo está en una carpeta pública.
Entonces mi sugerencia es:
O
Si realmente insiste en poner css dentro de la carpeta de vistas, puede intentar crear un enlace simbólico (es mac, así que está bien, pero para Windows, esto solo funcionará para Vista, Server 2008 o superior) desde el directorio de su carpeta css al público. carpeta y puede usar
{{HTML::style('your_view_folder/myStyle.css')}}
dentro de sus archivos de vista, aquí hay un código para su conveniencia, en el código que publicó, póngalo antes dereturn View::make()
:Si realmente quieres intentar hacer tu idea, prueba esto:
Pero no funcionará incluso si el directorio de archivos es correcto porque Laravel no lo hará por motivos de seguridad, Laravel te ama mucho.
fuente
En mi opinión, la mejor opción para enrutar a css & js usa el siguiente código:
Entonces, si tiene un archivo css llamado main.css dentro de la carpeta css en la carpeta pública, debería ser el siguiente:
fuente
ponga su archivo css en una carpeta pública. (public / css / bootstrap-responsive.css) y
<link href="./css/bootstrap-responsive.css" rel="stylesheet">
fuente
<link href="./css/bootstrap-responsive.css" rel="stylesheet">
y<link href="{{ url('/') }}./css/bootstrap-responsive.css" rel="stylesheet">
Simplemente puede poner todos los archivos en su carpeta especificada en público como
public / css
public / js
public / images
Luego simplemente llame a los archivos como en html normal como
<link href="css/file.css" rel="stylesheet" type="text/css">
Funciona bien en cualquier versión de Laravel
fuente
Copie el archivo css o js que desea incluir en la carpeta pública o puede guardarlos en las carpetas public / css o public / js.
P.ej. está usando el archivo style.css de la carpeta css en el directorio público, entonces puede usar
<link rel="stylesheet" href="{{ url() }}./css/style.css" type="text/css"/>
Pero en Laravel 5.2 tendrás que usar
y si desea incluir archivos javascript de la carpeta public / js, también es bastante simple
y en Laravel 5.2 tendrás que usar
la función
url()
es una función auxiliar de laravel que generará una URL totalmente calificada para la ruta dada.fuente
ponga su css en la carpeta pública, luego
agregue esto en su archivo de hoja
fuente
Utilizar {!! en nuevo laravel
fuente
Para Laravel 5.4 y si está usando mix helper, use
fuente
Colóquelos en la
public
carpeta y llámelo en la vista con algo comohref="{{ asset('public/css/style.css') }}"
. Tenga en cuenta quepublic
debe incluirse cuando llame a los activos.fuente
Para aquellos que necesitan mantener js / css fuera de la carpeta pública por cualquier motivo, en Laravel moderno puede usar sub-vistas . Digamos que su estructura de vistas es
en
view1
agregaren
views-js.blade.php
archivos envuelva su código js en<script>
etiquetaen
views-css.blade.php
envolver sus estilos en la<style>
etiquetaEso le dirá a Laravel, y a su editor de código, que esos son de hecho
js
ycss
archivos. Puede hacer lo mismo con HTML adicional, SVG y otras cosas que se pueden renderizar en el navegadorfuente