簡體   English   中英

PHP-將資產目錄從公共映射到根

[英]PHP - Map assets directory from public to root

我繼承了一個PHP框架,該框架是由應用程序本身位於應用程序目錄中以及公共目錄中所有面向公眾的內容構建的。

- app
- public
   - assets
   - views

因此,要引用腳本和樣式表,它將以http://site.dev/public/assets/asset.file的形式寫出,因為它就在其中。

有人要求將資產引用為/assets/asset.file而不是完整路徑,但資產仍必須保留在公共目錄中。 似乎毫無意義和任意性,但我必須至少嘗試執行要求的操作。

Craft CMS的結構與資產位於公共目錄中的結構類似,但是按照我需要的方式寫在模板中。

因此,只是想知道是否有某種類型的函數或方法可以路由/映射要以這種方式寫出的目錄? 還是只在路徑中排除公共目錄?

在此先感謝您的協助。

如果您使用的是Apache,請簽出.htaccess文件。 更多信息可以在這里找到

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^/assets/(.*)$ /public/assets/$1
</IfModule>

您可以使用htaccess重寫URL。 您可能擁有site.com/css/style.css,其中/ css文件夾不存在,並且htaccess實際上將其映射到public / assets / css或您需要它。

這已經涉及了很多次,您只需要修改找到的代碼即可滿足您的需求。

這是一個類似的SO問題的示例,它得到了回答: .htaccess干凈的URL和相對路徑

公眾和應用目錄分開是有充分理由的:

app目錄是您的私人應用程序空間,外部不應看到。

一般而言:應用程序的作者最有可能意識到該問題(這就是為什么他采用這種結構),如果您將Web服務器文檔的根目錄指向公共目錄,則問題可能會自行解決。 然后,該路徑很可能會自行修復(假設作者確實意識到這一點;)。

公共目錄中最有可能存在index.php或app.php,這可能需要附加的RewriteRule。 但是,這是非常特定於應用程序/框架的。 也許您找到了自述文件。

暫無
暫無

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

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