用于资源文件 (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的主要内容,如果未能解决你的问题,请参考以下文章