Django无法在服务器上找到静态文件,但在本地计算机上运行正常

时间:2017-08-11 07:21:07

标签: django git python-3.x nginx webserver

我有一个运行django的vps,我正在从我的本地计算机开发该网站,并通过git将其推送到vps。

在我的本地计算机上我刚安装了初始化程序,并更改了所有脚本以使用静态位置,一切正常,但是当我将其推送到我的vps时,它发现的只是.html文件,它无法找到.css或.js脚本 vps正在运行Debian 8. * Minimal,有nginx和gunicorn 我的本地计算机正在运行MacOs 两台机器都运行Python 3.6.2和Django 1.11.4

以下是来自settings.py的相关设置:

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

我的路径是:

Project_folder/ -> BaseFiles  |  Django_project | manage.py
BaseFiles/ -> static  |  templates

更新 好吧事实证明,如果我从vps手动运行django,它会加载css和js文件,所以问题被隔离到Nginx

Nginx的:

server {
        listen 80;
        server_name domaine.com;

    location = /favicon.ico { access_log off; log_not_found off; }
    location /static/ {
        root /home/user/project_folder;
    }

所以事实证明我的nginx站点文件中存在配置错误。 在project_folder之后添加以下内容后,它工作正常

/BaseFiles

0 个答案:

没有答案