我正在一个项目上使用Laravel(5.6)和React(16.4.1 + react-router),遇到了一个问题,也许你们中的一些人也遇到了类似的问题,所以我想知道我们是否可以得到一些想法。最近,我在这里找到了用于刷新错误(404)的解决方案:How to use React Router with Laravel?,其中的一种灵魂解决方案也解决了/ app / {anything}问题。
现在我的问题是来自/css
文件夹中的资源文件(/js
,/public
)。我尝试使用与/ app =>
Route::get( '/{path?}', function() {
return view( 'home' );
})->where('path', '^((?!app|api|css|js).)*$');
,但仍无法按预期工作。如我所读,由于Laravel的缓存机制,我们必须将此代码段放入我们包含在应用程序中的所有路由之后,但是既不能使用/ css,也不能使用/public
文件夹中的/ js资源文件,但是只能使用{ {1}}和/api
路线,以及我在/ {path?}之前添加的所有内容。
有什么解决办法吗?我究竟做错了什么?
感谢您的帮助, 勒菲兹。
答案 0 :(得分:0)
我认为我已经找到了解决方案,并且我想必须与其他寻求此解决方案的人分享。首先,这是一个错误。在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(本地)资产提供几乎相同的解决方案:{ {1}}。
要提及的是,您应该像通过Laravel应用程序那样链接外部(来自其他网络),但由于我要的问题而无法使用。
祝你好运。 :)