Acabei de começar a aprender o Laravel e posso fazer o básico de um controlador e roteamento.
Meu SO é o Mac OS X Lion e está em um servidor MAMP.
Meu código de routes.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>";
});
Isso funciona, as visualizações exibem perfeitamente, '' entretanto '' o que eu quero tentar fazer é incluir CSS dentro das visualizações, eu tentei adicionar um link para uma folha de estilo dentro do diretório, mas a página a exibiu como a fonte padrão do navegador até embora o css estivesse no HTML!
Este é index.php de empresas na pasta de visualizações:
<head>
<link rel="stylesheet" type="text/css" href="mystyle.css">
</head>
<p>Business is a varied term. My content here.
Tentei usar o mecanismo de modelo Blade em minha outra pasta de visualizações (teste) para exibir CSS, mas novamente o CSS não apareceu, apesar de estar na pasta de teste!
Como posso superar esse problema e melhorar - enquanto estou aprendendo lentamente esta estrutura.
fonte
{{ URL::asset('css/css.css') }}
Respostas:
Coloque seus ativos na pasta pública
E eles chamaram usando o Laravel
fonte
Coloque seus ativos na pasta pública
E então chamei usando o Laravel
(OU)
fonte
{{ URL::asset('js/scrollTo.js'); }}
? Você pode dar um exemplo?seu arquivo css pertence à pasta pública ou a uma subpasta dela.
fe se você colocar seu css em
você usaria
Em sua visão da lâmina ...
Ou você também pode usar a classe Asset http://laravel.com/docs/views/assets ...
fonte
Você também pode escrever uma tag de link simples como faria normalmente e, em seguida, usar o atributo href:
claro que você precisa colocar seu arquivo css em public / css
fonte
Podemos fazer isso da seguinte maneira.
Ele irá pesquisar o arquivo de estilo na pasta pública do Laravel e então irá renderizá-lo.
fonte
http
<link href = "{{{asset ('/ css / style.css')}}}" rel = "stylesheet">, mas se você estiver usandohttps
, a solicitação será bloqueada e ocorrerá um erro de conteúdo misto, para usá-lo em https você deve usarsecure_asset
como <link href = "{{{secure_asset ('/ css / style.css')}}}" rel = "stylesheet" > laravel.com/docs/5.1/helpers#method-secure-assetComo Ahmad Sharif mencionou, você pode vincular a folha de estilo
http
mas se você estiver usando
https
, a solicitação será bloqueada e um erro de conteúdo misto virá, para usá-lo em https usesecure_asset
comohttps://laravel.com/docs/5.1/helpers#method-secure-asset
fonte
public/css
ouresources/assets/css
Desde o Laravel 5, a
HTML
classe não é mais incluída por padrão.Você pode usar a seguinte linha para incluir seus arquivos CSS ou JS:
fonte
Atualização para laravel 5.4 ----
Todas as respostas usaram a classe HTML para laravel, mas acho que ela foi depreciada agora no laravel 5.4, então coloque seus arquivos css e js em public-> css / js e faça referência a eles em seu html usando
fonte
Isso não é possível mano, o Laravel assume que está tudo em pasta pública.
Então, minha sugestão é:
Ou
Se você realmente insiste em colocar css dentro da pasta de visualizações, você pode tentar criar Symlink (você é Mac, então está tudo bem, mas para Windows, isso só funcionará para Vista, Server 2008 ou superior) de seu diretório de pasta css para o público pasta e você pode usar
{{HTML::style('your_view_folder/myStyle.css')}}
dentro de seus arquivos de visualização, aqui está um código para sua conveniência, no código que você postou, coloque-os antes dereturn View::make()
:Se você realmente deseja tentar realizar sua ideia, tente isto:
Mas não funcionará mesmo se o diretório do arquivo estiver correto porque o Laravel não fará isso por questões de segurança, o Laravel ama você muito.
fonte
Na minha opinião, a melhor opção para rotear para css e js é o seguinte código:
Portanto, se você tiver um arquivo css chamado main.css dentro da pasta css na pasta pública, deve ser o seguinte:
fonte
coloque seu arquivo css em uma pasta pública. (public / css / bootstrap-responsive.css) e
<link href="./css/bootstrap-responsive.css" rel="stylesheet">
fonte
<link href="./css/bootstrap-responsive.css" rel="stylesheet">
e<link href="{{ url('/') }}./css/bootstrap-responsive.css" rel="stylesheet">
Você pode simplesmente colocar todos os arquivos em sua pasta especificada em público, como
public / css
public / js
public / images
Em seguida, basta chamar os arquivos como em html normal, como
<link href="css/file.css" rel="stylesheet" type="text/css">
Funciona bem em qualquer versão do Laravel
fonte
Copie o arquivo css ou js que deseja incluir para a pasta pública ou armazene-os em pastas públicas / css ou públicas / js.
Por exemplo. você está usando o arquivo style.css da pasta css no diretório público, então você pode usar
<link rel="stylesheet" href="{{ url() }}./css/style.css" type="text/css"/>
Mas no Laravel 5.2 você terá que usar
e se você quiser incluir arquivos javascript da pasta public / js, é bastante simples também
e no Laravel 5.2 você terá que usar
a função
url()
é uma função auxiliar laravel que irá gerar uma URL totalmente qualificada para um determinado caminho.fonte
coloque seu css na pasta pública, então
adicione isso em seu arquivo blade
fonte
Usar {!! em novo laravel
fonte
Para o Laravel 5.4 e se você estiver usando o mix helper, use
fonte
Coloque-os na
public
pasta e coloque-os na visualização com algo parecidohref="{{ asset('public/css/style.css') }}"
. Observe que opublic
deve ser incluído quando você chama os ativos.fonte
Para aqueles que precisam para manter js / css fora da pasta pública por qualquer motivo, em Laravel moderno você pode usar sub-visualizações . Digamos que sua estrutura de visualizações seja
em
view1
adiçãoem
views-js.blade.php
arquivos envolva seu código js na<script>
tagem
views-css.blade.php
embrulhar seus estilos na<style>
tagIsso vai dizer ao Laravel, e ao seu editor de código, que aqueles são de fato
js
ecss
arquivos. Você pode fazer o mesmo com HTML, SVGs e outras coisas que podem ser renderizadas por navegadorfonte