使用Laravel Mix的Laravel版本缓存不起作用

时间:2018-02-23 17:33:02

标签: laravel laravel-mix

我正在尝试使用laravel mix但在浏览器中返回错误404

Laravel 5.6.4

我的.env APP_URL APP_URL = http://localhost/base-site-template/public

我的mix-manifest.json

{"/js/lib/echarts.js": "/js/lib/echarts.js?id=a24928e50f4d775d9e3e",
"/js/lib/moment.js": "/js/lib/moment.js?id=a3cde5d62118f1b1ac08",
"/js/lib/axios.js": "/js/lib/axios.js?id=1129cee8012a0ec7cb58",
"/css/lib/vuetify.css": "/css/lib/vuetify.css?id=c7533b5bc8f96cca4e90",
"/css/index.css": "/css/index.css?id=d41d8cd98f00b204e980",
"/css/template.css": "/css/template.css?id=c7533b5bc8f96cca4e90",
"/js/template.js": "/js/template.js?id=3213a53c38fb71543141",
"/js/lib/vue.js": "/js/lib/vue.js?id=e41f4d0b6a918ca9213d",
"/js/lib/lodash.js": "/js/lib/lodash.js?id=98dc43a5e921b41ef214",
"/js/lib/vee-validate.js": "/js/lib/vee-validate.js?id=bfc8600a0fc91c459f0e",
"/js/lib/vuetify.js": "/js/lib/vuetify.js?id=f0c3ad550b36770ee4c9",
"/js/index.js": "/js/index.js?id=5a79665b4d1331d942d7"}

webpack.mix.js image - click here

Browser inspection image - click here

Browser view-source image - click here

我正在尝试使用{{mix('js / template.js')}}

获取css和js文件

有人可以帮助我吗?

2 个答案:

答案 0 :(得分:0)

您的资源正在尝试从根目录加载:

您正在/而不是/base-site-template/public/js/index.js访问该网站。因此,您必须访问/js/index.js而不是{{ asset(mix('js/template.js')) }}

的文件

如果您正确设置了APP_URL,则可以使用asset()帮助器为APP_URL添加前缀。

{{1}}

答案 1 :(得分:0)

资产在编译时会被放入public/目录,例如:

public/js/lib/echarts.js

您的浏览器会将以/开头的相对请求视为相对于http://localhost/的基本路径。例如,当您加载页面http://localhost/base-site-template/public并引用/js/lib/echarts.js时,浏览器会发出此请求:

http://localhost/js/lib/echarts.js

但是,这不是您的资产所在的位置,您的资产位于:

http://localhost/base-site-template/public/js/lib/echarts.js

因此您需要:

  1. 使用绝对网址而不是相对路径引用资产
  2. 告诉客户浏览器使用不同的基本路径
  3. 将您的应用程序移至基本路径
  4. 您可以使用asset helper

    以绝对路径引用资产
    asset(mix('public/js/lib/echarts.js'));
    

    您可以使用文档head中的base element告知客户端浏览器使用不同的基本路径:

    <base href="http://localhost/base-site-template/public/">