将所有资产请求重定向到不同域上的等效文件夹

时间:2014-12-30 13:21:53

标签: redirect laravel

我有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?怎么样?

感谢。

2 个答案:

答案 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') }}">