在除根页面之外的每个页面上加载 CSS、JS 和图像时出错
Error loading CSS, JS, and images on every page except for root page
本地开发环境正确加载 laravel 站点的第一页,但之后的任何页面都缺少 CSS、JS 和图像。 (没有加载)
我正在我的本地服务器上设置一个站点,该站点可在实时站点和暂存站点上运行。他们的设置使用 Apache,而我的设置使用 Nginx 和 Homestead。
我可以让网站正确加载第一页。当我导航到其他页面时,加载 html,但加载 CSS、JS 或图像的 none。
我已经仔细检查了我正确提取内容的所有文件夹,并且所有内容都存在。 (第一页正确加载)
当我查看控制台时,这是我收到的错误消息:
GET http://website.test/public/front/css/bootstrap.min.css net::ERR_ABORTED 500(内部服务器错误)
我看到了 18 条这样的错误消息。所有与 CSS、JS 和图像相关。
我已经坚持了好几个小时,并且对服务器端技术非常了解。任何帮助将不胜感激。
避免通过相对链接链接到静态资产。
所以而不是
<img src="images/photo.png">
<link href="front/css/bootstrap.min.css">
<script src="front/js/app.js">
使用 asset
帮助程序找出完整的 url
<img src="{{ asset('images/photo.png') }}">
<link href="{{ asset('front/css/bootstrap.min.css') }}">
<script src="{{ asset('front/js/app.js') }}">
@Caddy DZ 的解决方案非常适合 Laravel,因为它会生成一个绝对值 URL,但我认为您真正理解为什么会发生这种情况很重要,这样您就不会被卡住再来一次。
假设您正在从下面的 URL 查看您的网站,并且有两个链接的 CSS 资源:
https://example.com/product/101
1) <link href="front/css/bootstrap.min.css">
2) <link href="/front/css/bootstrap.min.css">
两个链接产生不同的结果!您必须使用前导 /
来指示站点根目录,否则所有资源都将相对于当前目录路径 /product
.
1) https://example.com/product/front/css/bootstrap.min.css
2) https://example.com/front/css/bootstrap.min.css
或者,Laravel 提供 asset()
帮助程序,它将生成绝对 URL。
<link href="{{ asset('front/css/bootstrap.min.css') }}">
// becomes an absolute URL
<link href="https://example.com/front/css/bootstrap.min.css">
本地开发环境正确加载 laravel 站点的第一页,但之后的任何页面都缺少 CSS、JS 和图像。 (没有加载)
我正在我的本地服务器上设置一个站点,该站点可在实时站点和暂存站点上运行。他们的设置使用 Apache,而我的设置使用 Nginx 和 Homestead。
我可以让网站正确加载第一页。当我导航到其他页面时,加载 html,但加载 CSS、JS 或图像的 none。
我已经仔细检查了我正确提取内容的所有文件夹,并且所有内容都存在。 (第一页正确加载)
当我查看控制台时,这是我收到的错误消息:
GET http://website.test/public/front/css/bootstrap.min.css net::ERR_ABORTED 500(内部服务器错误)
我看到了 18 条这样的错误消息。所有与 CSS、JS 和图像相关。
我已经坚持了好几个小时,并且对服务器端技术非常了解。任何帮助将不胜感激。
避免通过相对链接链接到静态资产。
所以而不是
<img src="images/photo.png">
<link href="front/css/bootstrap.min.css">
<script src="front/js/app.js">
使用 asset
帮助程序找出完整的 url
<img src="{{ asset('images/photo.png') }}">
<link href="{{ asset('front/css/bootstrap.min.css') }}">
<script src="{{ asset('front/js/app.js') }}">
@Caddy DZ 的解决方案非常适合 Laravel,因为它会生成一个绝对值 URL,但我认为您真正理解为什么会发生这种情况很重要,这样您就不会被卡住再来一次。
假设您正在从下面的 URL 查看您的网站,并且有两个链接的 CSS 资源:
https://example.com/product/101
1) <link href="front/css/bootstrap.min.css">
2) <link href="/front/css/bootstrap.min.css">
两个链接产生不同的结果!您必须使用前导 /
来指示站点根目录,否则所有资源都将相对于当前目录路径 /product
.
1) https://example.com/product/front/css/bootstrap.min.css
2) https://example.com/front/css/bootstrap.min.css
或者,Laravel 提供 asset()
帮助程序,它将生成绝对 URL。
<link href="{{ asset('front/css/bootstrap.min.css') }}">
// becomes an absolute URL
<link href="https://example.com/front/css/bootstrap.min.css">