Ok - eu sei que este é um problema realmente elementar, mas não consigo descobrir. Essa é uma pergunta em relação ao Laravel.
Basicamente, tenho minhas folhas de estilo incorporadas em minha visualização de layout padrão. No momento, estou usando apenas css normal para vinculá-los, como:
<link rel="stylesheet" href="css/app.css" />
Funciona muito bem quando estou em uma rota de nível único, como / sobre , mas para de funcionar quando vou mais fundo, como / sobre / mim .
Se eu olhar o console do desenvolvedor do Chrome, vejo alguns dos seguintes erros (apenas para as rotas mais profundas):
Resource interpreted as Stylesheet but transferred with MIME type text/html: "http://example.dev/about/css/app.css".
Está claro que agora ele está procurando o css dentro da pasta "about" - que obviamente não é uma pasta.
Eu só quero que ele olhe no mesmo lugar para os ativos, independentemente da rota.
asset()
método auxiliar instantâneo deURL::asset()
. Ele faz o mesmo trabalho.Laravel 4
A maneira melhor e correta de fazer isso
Adicionando CSS
HTML :: style irá vincular ao seu projeto / public / pasta
Adicionando JS
HTML :: script irá vincular ao seu projeto / public / pasta
fonte
Você está usando caminhos relativos para seus ativos, mude para um caminho absoluto e tudo funcionará (adicione uma barra antes de "css".
fonte
no Laravel 5 ,
existem 2 maneiras de carregar um arquivo js em sua visão,
primeiro usando html helper, a segunda é usando asset helpers.
para usar o helper html, você deve primeiro instalar este pacote via linha de comando:
então você precisa reqister, então vá para config / app.php, e adicione esta linha ao array de fornecedores
então você tem que definir aliases para o seu pacote html, então vá para a matriz aliases em config / app.php e adicione isto
agora seu helper html está instalado para que você possa escrever isto nos seus arquivos de visualização em lâmina:
isso irá procurar seu arquivo test.js em seu project_root / public / js / test.js.
//////////////////////////////////////////////////////// ////////////
para usar auxiliares de ativos em vez de auxiliares html, você deve escrever sth assim em seus arquivos de visualização:
isso irá procurar o arquivo test.js em project_root / resources / assets / test.js
fonte
<script src="{{ url(asset('test.js')) }}"></script>
(ou<script src="{{ url(mix('test.js')) }}"></script>
se estiver usando o Laravel Mix).Se você estiver usando o Laravel 3 e seus arquivos CSS / JS dentro de uma pasta pública como esta
então você pode chamá-los usando em modelos Blade como este
fonte
Sugiro que você coloque no filtro de rota antes de {project} /application/routes.php
e usando o motor de modelo de lâmina
ou mais em documentos de ativos de gerenciamento de laravel
fonte
em
laravel 4
você só tem que colar{{ URL::asset('/') }}
desta forma:É o mesmo para:
fonte
Laravel 5.4 com mix helper:
fonte
No Laravel 5.7, coloque seu arquivo CSS ou JS no diretório Público.
Para CSS:
Para JS:
fonte
Melhor maneira, na minha opinião, de adicionar a tag BASE ao seu HTML
Portanto, não é necessário usar coisas como
apenas digite
em sua visão e funcionará.
Este método irá lidar com URLs RESTful e recursos estáticos como imagens, css, scripts.
fonte
Vinsa quase acertou, você deve adicionar
e os scripts devem seguir seu caminho normal
a razão para isso é porque as imagens e outras coisas com caminho relativo, como origem da imagem ou solicitações ajax, não funcionarão corretamente sem o caminho base anexado.
fonte
Se você o codificar, provavelmente deve usar o caminho completo (
href="http://example.com/public/css/app.css"
). No entanto, isso significa que você terá que ajustar manualmente os URLs para desenvolvimento e produção.Uma alternativa para as soluções acima seria usar
<link rel="stylesheet" href="URL::to_asset('css/app.css')" />
no Laravel 3 ou<link rel="stylesheet" href="URL::asset('css/app.css')" />
no Laravel 4. Isso permitirá que você escreva seu HTML da maneira que quiser, mas também permitirá que o Laravel gere o caminho adequado para você em qualquer ambiente.fonte
Melhor maneira de usar como,
fonte
Suponha que você não tenha renomeado sua pasta pública. Seus arquivos css e js estão nas subpastas css e js na pasta pública. Agora seu cabeçalho será:
fonte
Basta adicionar outro problema:
Se você deseja remover
/public
do seu projeto usando.htaccess
,então você pode usar isto, [Adicionar
public
antes de/css
dentroasset()
][Às vezes, é útil.]
fonte
Para o Laravel 4: {!! para uma chave dupla {{
e para a versão do Laravel 5 e superior: você pode substituir {!! por {{e !!} por}} na versão de ponta
Se você colocou o JavaScript em um diretório definido de forma personalizada.
Por exemplo, se o seu
jQuery-2.2.0.min.js
for colocado no diretórioresources/views/admin/plugins/js/
, em,*.blade.php
você poderá adicionar no final da seção comoUma vez que a versão Higher-End suporta a versão Lower-End também e mas não vice-versa
fonte
A maneira melhor e correta de fazer isso:
fonte
No Laravel 5.8
acabou de fazer o truque para mim.
fonte
coloque seu arquivo de script no diretório público e use (por exemplo para userFunctions.js)
fonte