2015-08-28 122 views
0

這很奇怪。它工作正常,但它運行的機器壞了,我不得不再次掛載它。 webapp顯示wuite背景,沒有圖像,css也沒有js加載。我的Django應用程序沒有提供靜態文件

這是應用程序是如何構成的: App folder structure

這些都是settings.py這件事的變量(如果需要的話,請詢問任何其他):

DEBUG = True 
TEMPLATE_DEBUG = DEBUG 

STATIC_ROOT = '' 
STATIC_URL = '/static/' 
STATICFILES_DIRS = (
    '/var/www/myapp/static/', 
) 

而進入我的tempaltes,我總是這樣設置內容的URL:

<img id="logo" src="{{STATIC_URL}}images/logo.png"\> 

有關問題出在哪裏的任何想法?

+1

你讀過https://docs.djangoproject.com/en/1.8/howto/static-files/? – jonrsharpe

+0

你檢查了你的網絡服務器日誌嗎? – scytale

+0

@jonrsharpe事實上,我做到了。儘管如此,它沒有幫助(我在模板的src字段中使用{{STATIC_URL}}而不是{%static「my_app/myexample.jpg」%},但是我保留,因爲它的工作原理像這個) –

回答

0

我終於發現了錯誤:阿帕奇運行的默認和港口服務80的HTML模板,但沒有對靜態文件的權限。

0

檢查源使用查看源文件加載,如果是從那裏檢查是否有鏈接到你的靜態資產訪問如果存在的話,那麼你必須硬刷新瀏覽器

+0

我使用Control + F5(windows)來硬刷新瀏覽器。還是一樣。我檢查圖片的網址,如果我訪問了例如本地主機:8080 /靜態/圖像/ logo.png,404 Django的錯誤模板出現 –

+0

嘗試打印{{STATIC_URL}}在你的模板之一,並檢查其值 –

+0

它只是說「/靜態/」 –

0

包括模板{% load staticfiles %}。上述回覆後由阿倫·費爾南德斯

+0

爲什麼這樣而不是像我在做什麼?這是一個更新的Django版本改變了嗎? (正如我所說,該應用程序工作正常,這就是爲什麼我沒有觸摸模板) –

+0

它的工作與否? –

+0

它沒有。即使還加載圖像像My image

0

您的評論表示您處於調試模式。是django.contrib.staticfiles在您的INSTALLED_APPS

+0

是的,它有 –

+0

'from django.conf import settings'也在你的settings.py中嗎? –

+0

不,設置沒有被導入,但是我真的需要導入settings.py中的設置嗎?這不包括在默認settings.py文件 –

1

的設置你一般氣餒,爲當地的發展,如果你要嘗試運行基於Linux的機器上,這是行不通的,他們將正常工作,但是。

下面是它應該如何格式化:

以下是這將使它這樣的設置:

STATIC_URL = '/static/' 

STATIC_ROOT = os.path.join(BASE_DIR, 'static', 'static_root') 
#this applies to all operating systems 
STATICFILES_DIRS = (
os.path.join(BASE_DIR, 'static', 'static_dirs'), 
) 

你會把你的靜態文件夾和文件「static_dirs」 ,然後每當你需要同步到「static_root」。你可以輸入:「python manage.py collectstatic」。

在你的模板文件,你會然後鍵入:

{% load static from staticfiles %} 

<img id="logo" src="{% static "images/logo.png" %}"\> 

這應該工作。