我有一个使用django运行的vps,我正在从本地机器开发网站,并通过git将其推送到vps。Django不能在服务器上找到静态文件,但在本地机器上工作正常
在我的本地机器上,我刚刚安装了initializr,并且更改了所有脚本以使用静态位置,并且一切正常,但是当我将它推送到我的vps时,它发现的只是.html文件,它不能找到任何的.css或.js文件 VPS被运行Debian 8. *最小,nginx的脚本和gunicorn 我的本地机器上运行Mac系统 两台机器上运行的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
UPDATE 好了,事实证明,如果我从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
请,添加错误跟踪你。 –
有没有错误跟踪我只是得到一个没有CSS或JavaScript的HTML页面,CONSOL只是说它无法找到文件在域名/static/* – Alexander
在服务器django模式DEBUG = False,在本地计算机上' DEBUG = TRUE'?如果是这样的答案可以帮助你:https://stackoverflow.com/a/6406429/8060120 –