2012-06-05 56 views
2

我目前正在使用GAE託管的我的網站上工作。 它並沒有因爲而被更新,所以現在,我想用它製成的刷新:d使用Google App Engine在HTML和CSS上進行模板呈現

這樣的伎倆,我嘗試使用使用Python和WSGI,webapp2的MVC模型和渲染。模板。

一切正常,除了CSS部分。

事實上,我無法使用GAE(django)方法呈現CSS的某些部分。 我的Python控制器正在調用HTML文件並正確地用dict()值替換變量。

但是現在,爲了能夠只限制CSS文件的數量,我試圖做同樣的事情。

不幸的是我不知道我應該怎麼稱呼CSS文件。

目前我呼籲我的HTML像往常一樣我的CSS:

<link rel="stylesheet" media="screen" type="text/css" href="/assets/css/struct/index.css"> 

,並試圖動態地呈現該文件的這一部分:

header#navigation{ 
height:auto; 
min-height:480px; 
width:100%; 
min-width:100%; 
background-image:url('/assets/img/content/{{content_cat_name}}/cat_img.jpg'); 
background-repeat:no-repeat; 
background-position: left top; 
background-size:contain; 
background-color:#efefef; 
} 

一切,然後通過我的Python調用代碼是這樣的:

class URIHandler(webapp2.RequestHandler): 
def get(self, subdomain, page): 
    name = subdomain 
    pattern = os.path.join(os.path.dirname(__file__), '../views' ,'index.html')   
    template_values = { 
      'content_cat_name':name, 
      'cat_menu_title':name, 
      'cat_menu_text':name, 
    } 

    self.response.out.write(template.render(pattern, template_values)) 

所以,如果有人能幫我正確地調用我的CSS並替換使用我的python腳本的變量,我會非常高興:D 在此先感謝。

+0

爲什麼地球上你想動態生成CSS? –

回答

2

template.render只能替換您在path參數(第一個參數)中指定的文件中的標記。您正在爲.css文件提供靜態目錄,因此不會發生令牌替換,因爲該文件沒有通過該代碼傳遞。

您可以在您的index.html文件中內聯包含標記的CSS部分。

+0

Ouch -_-'我將不得不爲每個類別創建css文件... 內聯替換CSS屬性有點難看,我寧願爲每個類別生成一個css。 但非常感謝您的幫助:D –

+0

此外,如果您導入的文件template.render將其視爲靜態並且不會在其中顯示任何標記。 –

+1

爲什麼不只有一個CSS文件,每個變體的基於類的規則? –

0

我有我認爲是同樣的問題。我發現這個GAE documentation非常有幫助。總之,你需要進入你的app.yaml文件中創建一個新的處理程序:

url: /foldername 
    static_dir: foldername 

然後在你的鏈接標籤:

href="foldername/index.css" 
+0

那麼,在theorie,這將是一個解決方案,如果你生成整個CSS文件,處理程序將能夠完成生成一個特定的CSS文件,具體取決於您的處理程序,但在我的情況下,我試圖動態生成像背景一樣的少數指令參數。我終於使用了一個css預處理系統(sass)來解決這個問題。無論如何,感謝您對這個話題的興趣。我已經在另一個項目上(java一個)。 –

相關問題