如何在 Laravel 中使用 app.js 和 app.css 修复错误 404?
Posted
技术标签:
【中文标题】如何在 Laravel 中使用 app.js 和 app.css 修复错误 404?【英文标题】:How to fix error 404 with app.js and app.css in Laravel? 【发布时间】:2020-03-07 15:20:24 【问题描述】:我正在使用 Laravel 6 和 Bootstrap 4。
我做了一个小应用程序,我试图在 CSS 文件中更改正文的背景颜色,但我发现它不起作用。
于是我检查了开发者的工具,发现app.js和css/app.css
有两个错误“加载资源失败:服务器响应状态为 404(未找到)”
我尝试在 CSS 路径前添加 "/",但失败了。
查看:
<!doctype html>
<html lang=" str_replace('_', '-', app()->getLocale()) ">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- CSRF Token -->
<meta name="csrf-token" content=" csrf_token() ">
<title> config('app.name', 'Laravel') </title>
<!-- Scripts -->
<script src=" asset('js/app.js') " defer></script>
<!-- Fonts -->
<link rel="dns-prefetch" href="//fonts.gstatic.com">
<link href="https://fonts.googleapis.com/css?family=Nunito" rel="stylesheet">
<!-- Styles -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
<link href=" asset('css/app.css') " rel="stylesheet" type="text/css">
<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>
</head>
<body style="overflow: hidden; ">
<div id="app">
@include('../inc/navbar')
<main class="py-4">
@yield('content')
</main>
<br>
<br>
<br>
@include('../inc/footer')
</div>
</body>
</html>
CSS:
body
background-color: lightblue !important;
我想看看浅蓝色的身体,但由于某种原因它不起作用。你有什么想法吗?
【问题讨论】:
您在yourproject/public/css
中有一个app.css
文件,在yourproject/public/js
中有一个app.js
文件?
app.css
文件位于 meetingapp/css/app.css
中,app.js
位于 meetingapp/resources/js/app.js
... 但即使在资产中添加文件夹资源也不起作用。
【参考方案1】:
我试图在 css 文件中更改正文的背景颜色,但我发现它不起作用。
如果这是全新安装的 Laravel,您需要运行 npm install
。安装所有前端资产(css、js 等)。如果您从未对 css 或 js 进行过任何更改,则需要在终端中运行以下命令:npm run dev
或 npm run watch
。 Here is more documentation 用于 Laravel Mix。
您不会想要触摸实际的.css
文件;每当资产编译时,它都会被覆盖。使用上面的命令会将所有.scss
文件重新编译成.css
。
希望这会有所帮助!
【讨论】:
我安装了 npm 并创建了npm run dev
... 现在两个错误消失了,但主体的背景颜色仍然是白色。此外,现在导航栏的下拉菜单不起作用......是否可能是 Popper 的问题?
您需要在resources/sass/app.scss
(或您正在使用的任何.scss
文件中)更改背景颜色。然后重新运行npm run dev
重新编译css。如果您使用的是 Bootstrap,您可能需要单独拉入每个组件。或者查看有关如何从 Bootstrap 中提取完整 js 库的文档。
如果您使用符号链接将 index.php 放在 /var/www/your-site 中,请确保将 css 和 js 文件夹从 public 符号链接到 /var/www/your-site也是。【参考方案2】:
您需要编译资产。 (假设你已经安装了 npm)
运行
npm run prod - if production
或
npm run dev - if development
您还可以在编译资产之前更改文件resources/sass/_variables.scss
中的颜色。
【讨论】:
【参考方案3】:这个错误说明app.js
和app.css
的位置不正确:
"加载资源失败:服务器响应状态为404 (未找到)”
解决方案:
让你的 JS 目录结构如下:/public/js/app.js
让你的 CSS 目录结构如下:/public/css/app.css
【讨论】:
以上是关于如何在 Laravel 中使用 app.js 和 app.css 修复错误 404?的主要内容,如果未能解决你的问题,请参考以下文章
所有 Laravel 路由都暴露了。如果可能,如何将其移动到 app.js 或缩小
如何在 Laravel 7 中使用 Webpack.mix.js 使用多个 js?
如何使用 Laravel 8、Inertia.js 和 Vue3 定义全局变量?
如何使用 Laravel Mix 将 Vue 块文件放在 public/js 中?