Laravel的样式表和JavaScript在非基础路由中无法加载。
Laravel的样式表和JavaScript在非基础路由中无法加载。
好的,我知道这是一个非常基础的问题,但我无法解决它。这是关于Laravel的一个问题。\n基本上,我将我的样式表嵌入到默认的布局视图中。我目前只是使用常规的css链接它们,例如:\n
\n当我在单层路由(例如/about)时,它运行得很好,但当我深入到更深层次的路由(例如/about/me)时,它停止工作。\n如果我查看Chrome的开发者控制台,我会看到一些以下错误(仅适用于更深层次的路由):\n
资源被解释为样式表,但以text/html的MIME类型传输:“http://example.dev/about/css/app.css”。
\n所以显然它现在正在寻找位于“about”文件夹内的css,而实际上根本没有这样的文件夹。\n我只希望它无论路由如何都在同一个位置查找资源。
Laravel 4中,非基本路由的样式表和JavaScript不会加载的问题的出现原因是由于样式表和JavaScript文件的路径设置不正确。解决方法是使用HTML::style和HTML::script函数来添加样式表和JavaScript文件,并且确保路径是正确的。
添加CSS
HTML::style函数将链接到项目的public文件夹中的样式表。
{{ HTML::style('css/bootstrap.css') }}
添加JS
HTML::script函数将链接到项目的public文件夹中的JavaScript文件。
{{ HTML::script('js/script.js') }}
Laravel中的样式表和JavaScript在非基础路由中无法加载的问题,其出现的原因是使用了错误的路径来引用资源文件。解决方法是使用正确的路径来引用资源文件。
在Laravel 4和5中,可以使用URL::asset
方法来引用资源文件,该方法会将资源文件链接到project/public/
文件夹中。
如果想要将样式表和JavaScript文件包含在自己的包中,可以使用asset()
辅助方法来代替URL::asset()
方法。它们的功能是相同的。
另外,如果在开发环境中不想使用压缩版本的资源文件,可以在生产环境中使用压缩版本,可以通过设置相应的配置来实现。
以上方法在Laravel 5.1、5.4、5.6和6中都适用。
可以通过这里的运行容器来查看此解决方案的调试详情。