用于资源文件 (CSS/JS) 的 Laravel React-router 404

Posted

技术标签:

【中文标题】用于资源文件 (CSS/JS) 的 Laravel React-router 404【英文标题】:Laravel React-router 404 for Resource files (CSS/JS) 【发布时间】:2018-12-15 01:13:48 【问题描述】:

我正在与 Laravel (5.6) 和 React (16.4.1+react-router) 合作开展一个项目,遇到了一个问题,也许你们中的一些人也有类似的问题,所以我想知道我们能得到一些想法。最近我在这里找到了刷新错误(404)的解决方案:How to use React Router with Laravel? 并且其中一个解决方案也解决了 /app/anything 问题。

现在我的问题是来自/public 文件夹的资源文件(/css/js)。我尝试使用与 /app =>

相同的正则表达式来解决问题

Route::get( '/path?', function() return view( 'home' ); )->where('path', '^((?!app|api|css|js).)*$');

但它仍然没有按预期工作。正如我所读到的,由于 Laravel 的缓存机制,我们必须将这个 sn-p 放在我们包含在我们的应用程序中的所有路由之后,但它不适用于 /css 和 /public 文件夹中的 /js 资源文件 > 但适用于 @ 987654327@ 和 /app 路由,以及我在 /path? 之前添加的任何内容。

有什么解决办法吗?我究竟做错了什么?

感谢您的帮助, 乐菲兹。

【问题讨论】:

【参考方案1】:

我想我已经找到了解决方案,并且我认为我必须与其他正在寻找它的人分享。首先,这是一个错误。在home.blade.php 视图中,我错误地链接了我的资源文件,如下所示:<link rel="stylesheet" href="http://mydomain.something/css/styles.css" /> 这就是为什么它没有找到路线,并与 /path?/ 匹配 - 所以它实际上是呈现主视图而不是返回资源文件。

为此,Laravel 提供了一个解决方案,通过在 /public 文件夹中查找您的资产,只需简单地链接您的文件:<link rel="stylesheet" type="text/css" href="asset('css/styles.css')" /> 和几乎相同的 JS(本地)资产解决方案:<script src="asset('js/app.js')" ></script>

要提一下,您应该链接外部(来自其他网络),就像我使用我的 Laravel 应用程序所做的那样,由于我要求的问题而无法正常工作。

祝你好运。 :)

【讨论】:

以上是关于用于资源文件 (CSS/JS) 的 Laravel React-router 404的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 5.0 文件夹结构:公共与资源

Laravel 5.3,自定义 Css/Js 不工作

使用 Composer 在 Laravel 4 中加载 css/js 文件?

Laravel_Elixir_gulp任务利器安装

phalcon: 资源文件管 理 引入css,js

Laravel-表单篇-零散信息