簡體   English   中英

如何創建兩個 laravel 項目(在同一台服務器上),共享除資源(視圖)文件夾之外的所有文件

[英]How to create two laravel projects (on same server) with all files shared except resources (views) folder

我想在同一台服務器上創建兩個 laravel 項目,除了資源文件夾之外,幾乎所有文件都是通用/共享的(如符號鏈接)。 簡單來說,我只想為現有的桌面版本創建移動站點。 那么有沒有辦法使用除視圖之外的所有桌面版本文件。 如果沒有,那么至少有控制器、路由和模型。

一種方法是在 web.php 文件夾中的主 laravel 應用程序上創建 API,例如:

Route::get('/api/get/post', 'MainController@index');

所以在你的其他 Laravel 應用程序中,你可以調用它的路由,但讓它成為一個單獨的視圖。

但是,通過使用項目 1 的后端,您真的不需要項目 2 的后端,除非您想使用刀片模板引擎。

我認為改善用戶體驗的更好選擇是只擁有一個 laravel 項目並使用單獨的 URL 創建一個單獨的視圖。

我假設您需要對移動設備進行完整的重寫,而響應式設計無法合理地完成。 如果是這樣,您在移動設備上重定向並將相關鏈接更改為移動視圖。

if (navigator.userAgent.match(/iPhone/i) || navigator.userAgent.match(/iPad/i) || navigator.userAgent.match(/Android/i)) {
  window.location.replace("/mobile/page"); 

 document.getElementById("btn-link").setAttribute('href', '/mobile/page');
 <a href="https://example.com/desktop/page" id="btn-link">Click Me!</a>

重新加載頁面的缺點是它必須加載原始頁面資產,然后在重定向時重新加載另一組資產。

為了擺脫這種情況,您可以在不同的刀片中編寫移動 html.php 文件,但將其設置為顯示:無;。 那么如果 javascript 看到該設備是移動設備,則會切換桌面和移動版本的顯示。

但是我會質疑為什么您的移動網站需要與您的桌面環境如此不同,以至於響應式設計無法處理它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM