Laravel subdomain的问题处理方法

最近用Laravel + js框架部属在学校的Linux apache的子网域

但因为Laravel + js框架使用的是设定好的mix方式打包,在路径改变导致了不少麻烦
在这边纪录一下遇到的问题以及自己的解决办法:

1. server找不到首页

通常子使用者的home底下会有public_html资料夹
把专案複製贴在home后,把public里的东西全部複製到public_html里面
(或是改伺服器预设的位置,不过学校的伺服器不方便我做更改)
网页的网址会在

网域名/~子使用者名称/index.php

2. The stream or file "/home/子使用者/storage/logs/laravel.log" could not be opened: failed to open stream: Permission denied

解决办法可以参考这篇
能使用775就用775,777比较危险。

3. 找不到app.js ( /js/app.js is not found 404 )。

将 resources/views/index.blade.php 中的

<script src="{{ mix('js/app.js') }}"></script>

改成

<script src="{{ asset(mix('/js/app.js')) }}"></script>

4. 使用 ajax/fetch/axios 的时候url失效。

因为使用subdomain,Laravel提供api的url也会跟着改变,但Js的local仍然是没有加入子网域的路径。
假设原本的路径为

/api/get/data

上面的路径会回传404,必须改成下面这样,要加入首页的路径:

 /~子使用者名称/index.php/api/get/data

5. 在使用前端router的状况下,使用href或是location.href无法连结到设定的页面。

处理方法类似4,比较特别的是如果是使用hashRouter
假设原本的路径为

/#/home

必须改成下面这样,注意在index.php的后面是直接加井字号:

/~子使用者名称/index.php#/home

6. 读取不到local图片

这个比较特别,我目前使用的方式是在打包后
直接去public_html资料夹(或是public)修改app.js
CTRL+F搜寻
/images
全部改成
/~子使用者名称/images
虽然这个方法有效,但我不确定是否有更好的方法。


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章