我在访问 Laravel 10 中的“assets”文件夹时遇到的 url 问题

The url problem I have in accessing the "assets" folder in Laravel 10

提问人:Martin 提问时间:11/10/2023 更新时间:11/10/2023 访问量:97

问:

由于我不想占用您的时间,因此我将首先非常简要地总结一下问题。我可以说我已经阅读并尝试了几乎所有关于类似问题的所有其他消息。但我的问题从未得到解决。

摘要: 我在计算机上的Xampp上创建的虚拟服务器上运行Laravel 10。当我输入“cmd.dev”地址时,一切似乎都很好,但是在 cms.dev/account/detail 等地址中没有加载css和js。

扩展: 我在“C:\xampp\htdocs\cms”目录中进行了 Laravel 10 的全新安装。与我之前的Laravel项目一样,我将必要的信息添加到位于“C:\xampp\apache\conf\extra”目录中的“httpd-vhosts.conf”文件中,以创建虚拟服务器。

<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot "C:/xampp/htdocs/cms/public/"
ServerName cms.dev
ServerAlias www.cms.dev
ErrorLog "logs/cms.dev-error.log"
CustomLog "logs/cms.dev-access.log" common
</VirtualHost>

当然,我在“hosts”文件中添加了必要的行。

127.0.0.1 cms.dev

当我从浏览器输入“cms.dev”时,没有问题。我在Laravel“public/assets”中的所有css或js文件都加载完毕,没有任何问题,并且出现了我想要的界面。例如,即使我转到 cms.dev/account 页面,也没有问题。但是,当 url 中出现另一个斜杠时,例如,当我进入 cms.dev/account/detail 页面时,不幸的是,没有加载 css 等文件。当我检查源代码时,一切都是正确的 (“cms.dev/assets/vendor/css/core.css”) 出现。当我说检查页面时,它显示的路径是(“cms.dev/account/assets/vendor/css/core.css”)。所以似乎已经插入了 account 参数。

我之前在 Laravel 9 上实施了 3 个项目,具有这种确切的安装和设置,并且从未遇到过任何类似的问题。是什么问题导致我在 Laravel 10 中遇到这种情况?我真的快要疯了。提前非常感谢大家。

我通过执行全新安装测试了所有内容。

Laravel版本:v10.31.0

PHP版本:v8.2.4

我的“assets”文件夹位于Laravel的“public”文件夹中,包含css和js文件夹。我所做的唯一更改是在“.env”文件中指定APP_URL变量:

APP_URL=http://cms.dev

然后我尝试以与我以前的项目相同的方式调用我的文件:

{{asset('资产/供应商/css/core.css')}}

由于这种方法不起作用,我定义了 Laravel 建议的 ASSET_URL 变量:

ASSET_URL=http://cms.dev/assets

我这样称呼我的文件:

{{asset('供应商/css/core.css')}}

php laravel url 资产 laravel-10

评论

0赞 miken32 11/10/2023
显而易见的第一个问题是:是否可以从您正在使用的 URL 访问这些文件?
0赞 Martin 11/10/2023
Merhaba, cevabınız için çok teşekkür ederim.Evet, dosyalar orada ve yukarıda belirtilen URL'leri girdiğimde hepsine erişebiliyorum.Aslında örneklerde de belirttiğim gibi ana sayfaya girdiğimde her şey çok güzel çalışıyor.Ancak bahsettiğim diğer yollara gittiğimde (Örneğin: cms.dev/account/detail) kaynak kodunda her şey güzel ve doğru görünüyor ancak sayfayı incelemeye çalıştığımda “Kaynak yüklenemedi : sunucu, konsolda 404 (Not) durumuyla yanıt verdi.Bulundu)“ hatası ve url, ”cms.dev/account/assets/vendor/css/core.css“ olarak görünüyor :(

答:

0赞 Adam 11/10/2023 #1

要解决此问题,您需要在资产函数中引用的路径的前面添加一个正斜杠,以便文件的基本路径成为公用文件夹。

APP_URL=http://cms.dev

然后在您的文件中

{{asset('/assets/vendor/css/core.css')}}

评论

0赞 Martin 11/10/2023
您好,非常感谢您的帮助,但我也尝试过这个,不幸的是它没有用。我的第一次尝试如下: ASSET_URL=cms.dev/assets {{asset('/vendor/css/core.css')}} 我的第二次尝试如下(即您指定的方法): (当然,我从 .env 文件中删除了“ASSET_URL”变量) APP_URL=cms.dev {{asset('/assets/vendor/css/core.css')}} 不幸的是,同样的问题仍然存在。主页上一切正常,但是当我转到“cms.dev/account/detail”时,不幸的是资产没有加载。我快要疯了。