2011-06-08 51 views
2

因此,我正在製作一個CMS,並使用模塊化擴展HMVC CI 2.0。很可愛。我想知道保持我的資產(js,css,img)與模塊目錄中的模塊相關的正確方法。模塊化擴展CI錨定到資產

問題是,我該如何鏈接到這些資產?比方說,我使用的模板引擎,並傳遞js文件加載特定頁面:

$js[] = 'assets/js/my_js.js'; 

我想我問這都是錯誤的,但有一個簡單的方法使用當前模塊的鏈接目錄?

在此先感謝。

回答

0

目前沒有什麼內置CI或HMVC的。

我更喜歡而不是以引用允許從應用程序目錄中直接訪問的文件,如images/js/css。主要是因爲:

  • 我不想讓任何人知道我的應用程序的膽量看什麼樣子。通過直接在模塊中引用文件,可以暴露應用程序的目錄結構。

  • 我永遠不會做,如果我不是使用HMVC

  • 現在,您必須允許通過.htaccess中的應用程序內直接訪問(某些)目錄。出於安全原因,我寧願簡單地拒絕整個事情。

我明白儘可能模塊化的願望,但對我來說這不值得冒這個麻煩。我更喜歡在名爲「模塊」(複製我的應用程序/模塊結構)的公用文件夾中保留一個單獨的目錄,該目錄除了「assets」(css,js,images ...)外沒有其他任何內容。

我會提供一些代碼,但我不知道如何將js/css添加到您的視圖 - 它可能與我做的方式大不相同。編寫一個函數來檢測當前模塊,控制器或方法並自動更改資產文件夾會很容易,但這可能會干擾其他共享資產。我建議編寫一個完全獨立的函數來從模塊加載資源。

+0

您所概述的內容正是我目前所做的 - 將資產文件中的模塊目錄結構鏡像與任何CI完全分離。我只是覺得它有點拙劣,如果所有模塊的東西都放在一起,會更好。也就是說,我同意你關於人們看到手術的「膽量」。也許我會保持它,因爲我/你在做:) – 2011-06-09 09:50:55

+0

你可以做的另一件事是使用某種緩存系統。你可以從模塊目錄中''readfile()'js/css,如果你願意的話可以將文件合併在一起,然後用這些內容寫入公共目錄。煩人的部分是你必須在更新時重寫它,無論是手動還是用'filemtime()'觸發(緩存文件比當前文件更舊)。 – 2011-06-09 13:01:26