Django 生產(chǎn)環(huán)境 靜態(tài)資源配置

部署環(huán)境:

CentOS release 6.7 (Final)
Python 3.5.3
Django 1.11.2


開發(fā)環(huán)境靜態(tài)資源沒有出過什么問題,一直健康良好的可訪問,可在部署到Linux生產(chǎn)環(huán)境后出現(xiàn)了訪問不到的404問題。

相對比,官方的指導還不如網(wǎng)上前輩總結(jié)的精辟到位。

我的 settings.py 相關(guān)配置文件如下:

# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = False

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'templates')]
        ,
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.static',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/1.11/howto/static-files/

STATIC_URL = '/static/'

# 設(shè)置靜態(tài)文件目錄
STATIC_PATH = os.path.join(os.path.dirname(__file__), 'static')

# 生產(chǎn)環(huán)境靜態(tài)資源目錄,執(zhí)行 manage.py collectstatic 后靜態(tài)文件存放的路徑
STATIC_ROOT = os.path.join(BASE_DIR, 'release', 'static')

# 生產(chǎn)環(huán)境 執(zhí)行 manage.py collectstatic 后搜索配置的文件列表,存儲至STATIC_ROOT目錄下
# 可以用來存儲公用資源,如: JQuery, bootstrap等
STATICFILES_DIRS = (
    # os.path.join(os.path.dirname(__file__), '../static/').replace('\\', '/'),
)

# 配置項用來控制文件被聚集起來的方式。
# 默認值是 django.contrib.staticfiles.storage.StaticFilesStorage ,表示將文件集合在 STATIC_ROOT 配置項指定的文件夾中。

# AppDirectoriesFinder 用來在每個app中的 static 文件搜索靜態(tài)文件,如: $app_name/static/ 。
# FileSystemFinder 用來搜索在 STATICFILES_DIRS 配置項中指定的文件夾列表中尋找靜態(tài)文件。
STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder',
    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
#    'django.contrib.staticfiles.finders.DefaultStorageFinder',
)

配置完后在project目錄下執(zhí)行manage.py collectstatic,會將靜態(tài)資源導入/release/static目錄下。

用uwsgi啟動服務(wù)至后臺:nohup uwsgi --http :8000 -p 4 --modul horoscope_web.wsgi &

測試:通過http://***.com/static/images/grain.png即可訪問到images下的圖片,靜態(tài)資源css, js也可以正常訪問。

但是admin后臺的靜態(tài)資源還是加載失敗,解決后補帖!


參考:

Django管理靜態(tài)文件

Django官方指南 How to static-files

Django | 靜態(tài)文件處理

django1.10使用本地靜態(tài)文件

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容