Php Laravel样式表和javascript don';非基本路线的t荷载

Php Laravel样式表和javascript don';非基本路线的t荷载,php,laravel,blade,Php,Laravel,Blade,好吧,我知道这是一个很基本的问题,但我搞不懂。这是一个关于拉威尔的问题 基本上,我在默认布局视图中嵌入了样式表。我目前只使用常规css链接它们,例如: <link rel="stylesheet" href="css/app.css" /> 所以很明显,它现在正在“about”文件夹中寻找css——当然它根本不是一个文件夹 我只想让它在同一个位置查找资产,而不管路径如何。如果您在公用文件夹中使用Laravel 3和CSS/JS文件,如下所示 public/css public/js

好吧,我知道这是一个很基本的问题,但我搞不懂。这是一个关于拉威尔的问题

基本上,我在默认布局视图中嵌入了样式表。我目前只使用常规css链接它们,例如:

<link rel="stylesheet" href="css/app.css" />
所以很明显,它现在正在“about”文件夹中寻找css——当然它根本不是一个文件夹


我只想让它在同一个位置查找资产,而不管路径如何。

如果您在公用文件夹中使用Laravel 3和CSS/JS文件,如下所示

public/css
public/js
{{ HTML::style('css/style.css'); }}
{{ HTML::script('js/jquery-1.8.2.min.js'); }}
然后,您可以在刀片模板中这样调用它们

public/css
public/js
{{ HTML::style('css/style.css'); }}
{{ HTML::script('js/jquery-1.8.2.min.js'); }}

您正在为您的资产使用相对路径,更改为绝对路径,一切都将正常工作(在“css”之前添加斜杠)


如果您对其进行硬编码,可能应该使用完整路径(
href=”http://example.com/public/css/app.css“
)。但是,这意味着您必须为开发和生产手动调整URL

上述解决方案的另一种选择是在Laravel 3中使用
,或在Laravel 4中使用
。这将允许您以所需的方式编写HTML,但也允许Laravel在任何环境中为您生成正确的路径。

对于Laravel 4和5:

<link rel="stylesheet" href="{{ URL::asset('assets/css/bootstrap.min.css') }}">

将链接到您的
项目/public/
文件夹,因此将脚本放在那里。

注意:为此,您需要使用“.Blade文件使用
.Blade.php
扩展名。

我建议您在{project}/application/routes.php之前将其放在路由过滤器上

Route::filter('before', function()
{
    // Do stuff before every request to your application...    
    Asset::add('jquery', 'js/jquery-2.0.0.min.js');
    Asset::add('style', 'template/style.css');
    Asset::add('style2', 'css/style.css');

});
并使用叶片模板引擎

{{ Asset::styles() }}
{{ Asset::scripts(); }}

或更多关于Laravel 4的信息


这样做的更好和正确的方法

添加CSS

样式将链接到您的项目/公用/文件夹

{{ HTML::style('css/bootstrap.css') }}
{{ HTML::script('js/script.js') }}
添加JS

脚本将链接到您的项目/公用/文件夹

{{ HTML::style('css/bootstrap.css') }}
{{ HTML::script('js/script.js') }}

laravel4
中,您只需通过以下方式粘贴
{{{URL::asset('/')}

  <link rel="stylesheet" href="{{ URL::asset('/') }}css/app.css" />.
同样适用于:

  <script language="JavaScript" src="{{ URL::asset('/') }}js/jquery.js"></script>
  <img src="{{ URL::asset('/') }}img/image.gif">

我认为最好的方法是在HTML中添加基本标记

<base href="/" target="_top">
打字

<script src="js/jquery/jquery-1.11.1.min.js"></script>

在你看来,这是可行的


此方法将处理RESTful URL和静态资源,如图像、css、脚本。

在Laravel 5中,
在视图中加载js文件有两种方法
第一个是使用html帮助程序,第二个是使用资产帮助程序。
要使用html helper,您必须首先通过命令行安装此软件包:

composer require illuminate/html
然后您需要重新注册它,因此转到config/app.php,并将这一行添加到提供者数组中

'Illuminate\Html\HtmlServiceProvider'
然后,您必须为html包定义别名,因此请转到config/app.php中的别名数组并添加此

'Html'     => 'Illuminate\Html\HtmlFacade'
现在,您的html助手已安装,因此您可以在刀片视图文件中编写以下内容:

{!! Html::script('js/test.js') !!}
这将在项目中查找test.js文件。\u root/public/js/test.js。
//////////////////////////////////////////////////////////////
要使用资产帮助程序而不是html帮助程序,您必须在视图文件中编写如下内容:

<script src="{{ URL::asset('test.js') }}"></script>

这将在project_root/resources/assets/test.js中查找test.js文件 你应该加上

<base href="{{URL::asset('/')}}" target="_top">

脚本应该按照它们的常规路径运行

<script src="js/jquery/jquery-1.11.1.min.js"></script>


原因是,如果没有附加基本路径,图像和其他具有相对路径的内容(如图像源或ajax请求)将无法正常工作。

Laravel 5.4 with mix helper:

<link href="{{ mix('/css/app.css') }}" rel="stylesheet">
<script src="{{ mix('/js/app.js') }}"> </script>

更好地使用like

<link rel="stylesheet" href="{{asset('assets/libraries/css/app.css')}}">

假设您尚未重命名公用文件夹。您的css和js文件位于公用文件夹的css和js子文件夹中。现在,您的标题将是:

<link rel="stylesheet" type="text/css" href="/public/css/icon.css"/>
<script type="text/javascript" src="/public/js/jquery.easyui.min.js"></script>

只需添加另一个问题:

如果要使用
.htaccess
从项目中删除
/public

然后,您可以在
asset()中使用此[在
/css
之前添加
public
]



[有时,它很有用。]

对于Laravel 4:{!!对于双花括号{{
对于Laravel5及以上版本:在更高版本中,您可以将{!!替换为{{{并将!!}替换为}}}

如果您已将JavaScript放置在自定义目录中。
例如,如果您的
jQuery-2.2.0.min.js
被放置在
资源/views/admin/plugins/js/
目录下,那么您可以在
*.blade.php
中添加以下内容:

<script src="{!! asset('resources/views/admin/plugins/js/jQuery-2.2.0.min.js') !!}"></script>


因为在Laravel 5.7中,高端版本也支持低端版本,但不支持低端版本,所以请将CSS或JS文件放入公共目录

对于CSS:

<link rel="stylesheet" href="{{ asset('bootstrap.min.css') }}">

对于JS:

<script type="text/javascript" src="{{ asset('bootstrap.js') }}"></script>

更好、正确的方法是:

<link rel="stylesheet" href="{{ asset('assets/css/bootstrap.min.css') }}">

在Laravel 5.8中

<script src="{{asset('js/customPath1/customPath2/customjavascript.js')}}"></script>


刚刚为我做了这个把戏。

将脚本文件放在公共目录中,然后使用(例如用于userFunctions.js)



是的,这个新的laravel使一切变得复杂,资产,甚至探查器都不再在文档中。如果你的应用程序位于网站的子目录中,这将不起作用。然后你会遇到一个问题,你的资产查找太远。我的建议是使用@Chris提供的解决方案。这将消除所有问题esswork,并允许您将应用程序移动到任何位置,同时确保它将正确加载资源。只需确认它在Laravel 5和5.1中也能正常工作。谢谢。我已经创建了自己的软件包。我可以在其中包含css吗?如果可以,我如何从自己的软件包中包含css?您也可以使用
asset()
URL::asset()
的helper方法instant。它做同样的工作。在Laravel 5.4中也可以使用。如果您希望在生产中使用缩小版,而不是在开发中,该怎么办?Illumb/html已被禁用
<script type="text/javascript" src="{{asset('js/userFunctions.js')}}">