在 laravel 中使用前缀后,asset('assets') 返回错误的目录

Posted

技术标签:

【中文标题】在 laravel 中使用前缀后,asset(\'assets\') 返回错误的目录【英文标题】:asset('assets') return to wrong directory after using prefix in laravel在 laravel 中使用前缀后,asset('assets') 返回错误的目录 【发布时间】:2019-04-28 02:46:41 【问题描述】:

这是我加载资产的那一行:

<script src=" asset('assets') /js/vendors/jquery-3.2.1.min.js"></script>

这里的代码来自web.php 用于路线设置:

Route::resource('masuk', 'Backend\ParkirInController');

这段代码可以正常工作,但是当我使用像这里这样的前缀时:

Route::group(['prefix'=>'parkir'], function ()
   Route::resource('masuk', 'Backend\ParkirInController');
);

资产未加载并显示如下错误

require.min.js:5 GET http://localhost:8000/parkir/assets/js/vendors/jquery-3.2.1.min.js net::ERR_ABORTED 404(未找到)

因此前缀 parkir 的名称包含在资产 URL 中。

【问题讨论】:

【参考方案1】:

尝试改变这一行:

&lt;script src=" asset('assets') /js/vendors/jquery-3.2.1.min.js"&gt;&lt;/script&gt;

&lt;script src=" asset('/assets/js/vendors/jquery-3.2.1.min.js') "&gt;&lt;/script&gt;

在这里,您刚刚在assets 之前添加了一个/,以便url 从根目录而不是相对当前路径开始。

【讨论】:

仍然出现错误。这里有一些截图,这是错误,ibb.co/ZWhsN8L 这是网址ibb.co/dm4VY70 这就是我在尝试 dd(asset('/assets/js/vendors/Datatables-1.10.19/jquery.dataTables.min.js')) 时得到的结果localhost:8000/assets/js/vendors/Datatables-1.10.19/…" @Imran 如果此答案解决了您的问题(正如您在答案中提到的),请不要忘记投票并批准此答案。最良好的祝愿。【参考方案2】:

终于可以解决了!这是因为模板中的dashboard.js 使用require.js 来设置具有静态路径的所需资产。 它看起来像这样 Static path of assets

在我像@Imran 所说的那样在行首添加/ 之后。效果很好

【讨论】:

以上是关于在 laravel 中使用前缀后,asset('assets') 返回错误的目录的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 4 URL::asset() 和asset() 之间的区别

在共享主机中部署后 Laravel 结构损坏

为啥 laravel 广播频道有默认前缀?

Laravel 5 托管资产文件

在 Laravel 中使用数字前缀和其他字符串前缀制作代码

在 laravel 中更新数据时显示错误的唯一键验证