請閱讀我的以下情況。所以我們在.net中有一個Web應用程序。由於一些客戶想要支付一些自定義佈局,我們首先開始使用主題。直到超過10個才行。因爲之後很難維護,而且更多的人需要定製設計,所以我必須設計一個解決方案,以便用戶可以通過前端頁面更改少數css屬性。將background-url css屬性設置爲.net中的內存圖像
所以當用戶點擊一個按鈕時,會生成一個名稱與另一個css文件的文件夾,他可以更改屬性並保存新文件。這個文件被動態地加載到某個basebage上的Page_Load上。這是好的,直到越來越多的用戶爲此付費,現在我們有數十個文件夾,並預計有數百個。還有權限問題,默認情況下IIS沒有寫入權限的應用程序文件夾。此外,部署過程通過刪除整個應用程序文件夾並重新創建一個版本來構建新版本,因此我們必須做一個解決方法並製作一個包含用戶css的大型文件夾的副本。無論如何,我不喜歡讓數百個文件不受源代碼控制的想法。
現在,我有了一個新的需求。允許用戶上傳自定義圖像以替換我們自己的圖像。所以我說現在是把時間轉移到數據庫的時候了。對於我解決它的基本屬性。
我有一個「突變」 aspx頁面:
<%@ Page Language="C#" ContentType="text/css" %>
.labelText
{
color:<%= WebApplication1.UserProfile.LabelColor%>
}
所以用戶配置類獲取它從表中的數據。 然後在BasePage的
HtmlLink link = new HtmlLink();
link.Attributes.Add("type", "text/css");
link.Attributes.Add("rel", "stylesheet");
link.Attributes.Add("href", "~/Styles/Override.aspx");
this.Header.Controls.Add(link);
它的工作原理確定的Page_Load中,問題的圖像像這樣使用:
.divHeader
{
background: 15px 0 url("logo.gif")
}
這logo.gig將由用戶上傳,但我會喜歡保存在數據庫中。但是閱讀它作爲一個流時,我不能這樣做:
background: 15px 0 url(WebApplication1.UserProfile.Logo)
有沒有我可以指定一個CSS類對象的任何otehr方式,如果它不是什麼是最好的方法?我正在考慮將圖像保存在數據庫中,並將其作爲一個文件,類似於我們現在的文件。 我意識到,如果它是一個圖像控制它會更容易,但這是現在的設計,並重新制作它有點麻煩 感謝您閱讀本小說和任何oppinions在此。
非常感謝。你完全解決了我的問題 – Nial 2012-02-04 19:00:20