我有3个站点都在同一个Laravel安装上运行。一个网站是“主”网站,我想保留所有资产; css,脚本文件等在其相关子目录中。 所以我的目录结构如下所示:
-Root - site1 - css
- scripts
- images
- site2
- site3
使用我的网站的网址:
www.mysite1.com
www.mysite2.com
www.mysite3.com
将所有3个站点的所有资产保存在同一个地方会更方便,因此我不希望在其他2个站点的文件夹中创建新的css / scripts /文件夹。目前,我正在使用View::share
在所有网站的所有视图中共享site1的根域,以便我可以在我的路径中使用它;例如:
<img src="{{ $rootDomain . 'images/someimage.jpg' }}">
但我现在认为这是愚蠢的...如果我可以设置一些智能重定向系统会更容易......
实现这一目标的最佳方法是什么?可以/我应该在Laravel的routes.php文件中这样做吗?还是Htaccess?怎么样?
感谢。
答案 0 :(得分:0)
执行此操作的正确方法是在包含资产时指定完整的URL。这是标准的做法。
答案 1 :(得分:0)
我强烈建议不要重定向资产。想想那样。每次有人访问site2或site3(非主站点)时,浏览器会向当前应用程序发出多个请求以下载资产。所有这些请求都会返回重定向并导致浏览器每次请求两次。因此,请求(资产)的数量乘以因子2.这是不好的,因为您应该将请求保持在最低限度。
老实说,我认为您已经找到了最佳方法,只需使用主站点的域名来存放其他站点上的所有资产。
如果你想让它变得更漂亮位,你可以写一个辅助函数。
function master_asset(path){
// get rootDomain from config or something like that.
return $rootDomain . $path;
}
以与asset()
<img src="{{ master_asset('images/someimage.jpg') }}">