在Laravel 5中从公共文件夹外部提供CSS和JS

时间:2015-11-18 10:35:12

标签: php css laravel laravel-5

我理解这种打破了Laravel的结构化点,但是有一种方法让我疯狂。我打算使用一个laravel安装来托管几个由数据库驱动的网站。目前,所有站点共享相同的布局,并且我有一个系统可以在DB中存储一些自定义CSS,为每个站点提供不同的配色方案。我想改变它,以便他们可以使用完全不同的视图。因此,站点A加载views / theme1 / app.blade.php,站点B加载views / theme2 / app.blade.php。

我已使用以下命令返回视图。

$theme = getDomainThemeName();
return view($theme.'/home');

这也有效,但现在我的任务是动态加载资产。我正在使用bootstrap生成主题并对HTML进行一些调整以创建app.blade.php文件。我有2个可能的解决方案,但我更喜欢从views目录服务css文件的方法。这意味着以下映射。

  

http://website.com/css/style.css =>   /resources/views/theme1/css/style.css

可以这样做吗?另一种选择是使用php来读取css文件并使用yield将其插入应用程序。它有效,但这意味着我无法使用浏览器缓存来缓存资产。我还以为我可以在公共文件夹中创建子目录。公共/ THEME1 / CSS / style.css中。这是最合乎逻辑的意义,但这意味着我必须分割主题系统。我希望能够在views目录中解压缩一个主题,它才能正常工作。

我正在使用Laravel 5,我也可以访问服务器。在centos 7上运行PHP 5.4。

1 个答案:

答案 0 :(得分:0)

我认为最好的方法是拥有下一个结构:

/public/css/style.css
/public/css/theme1/custom1.css
/resources/views/common.blade.php
/resources/views/theme1/main.blade.php

然后用PHP每个网站主题有条件地加载。 缓存可能没有任何问题。