2015-08-15 66 views
0

我使用express + node.js + Jade。我寫了一個玉文件,但我不能讓背景圖像出現。我打得四處體類,它似乎文本顏色的工作,但在玉石中使用背景圖像

body { 
    font-family: "Josefin Slab" !important; 
    background-image: url("concursum-bg.jpg"); 
    background-size: cover; 
    color: white; 
    text-align: center; 
    background-repeat: no-repeat; 
    } 

我確信該圖像是在同一文件夾,因爲這玉文件時,它不使用背景圖片。

當我查看網頁源代碼的HTML是:

body { 
font-family: "Josefin Slab" !important; 
background-image: url("concursum-bg.jpg"); 
background-size: cover; 
color: white; 
text-align: center; 
background-repeat: no-repeat; 
} 

我在本地主機上運行此,如果該事項。

回答

2

必須提供圖像文件,以便瀏覽器可以訪問該圖像文件。當它位於帶有jade文件的文件夾中(我假設這是一個views目錄),它不是由Express提供的,因此瀏覽器無法訪問它。爲了解決這個問題,使服務器所服務的映像文件:

  • 在主快速應用,使用express.static從目錄提供靜態文件: app.use(express.static(__dirname + "/public"));
  • 現在,創建目錄要服務的文件來自: mkdir public
  • 創建圖像目錄那裏,理智: mkdir public/images
  • 將有文件 mv {views,public/images}/concursum-bg.jpg
  • 更新您的樣式表,將url("concursum-bg.jpg");更改爲url("/images/concursum-bg.jpg");
  • 重新啓動您的快速應用程序。

http://expressjs.com/starter/static-files.html

+0

會在哪裏我創建了 「公共」 目錄?在視圖所在的目錄中? – SocketPhys

+0

它的工作原理,但我想知道爲什麼快遞無法在視圖目錄中提供服務? – SocketPhys

+0

@SocketPhys Express默認情況下不會這樣做,而且它確實沒有任何理由。 – Aehmlo