Home > Article > Web Front-end > What should I do if Django modified the css file but it doesn’t take effect?
Solution: 1. Correctly configure "STATIC_URL" and "STATIC_ROOT" in the "settings.py" file; 2. Execute the "python manage.py collectstatic" command; 3. Restart gunicorn and nginx.
The operating environment of this tutorial: Windows 7 system, CSS3&&HTML5 version, Dell G3 computer.
After deploying Django to the server, every modification to the website on the local side needs to be synchronized on the server side. Before writing this article, I thought it was enough to just keep the source code synchronized, but I didn’t expect it. Encountered a problem today.
After modifying the main.css file, I then synchronized the website through git, and the code has been successfully synchronized to the server. But it just can’t be displayed normally. After some search and exploration, I found the correct way to modify static files such as css...
You should first change the settings under your project. The .py file has been correctly configured with STATIC_URL and STATIC_ROOT:
STATIC_URL = '/static/' STATIC_ROOT = os.path.join(BASE_DIR,'static/')
Please pay attention to the "/" in the quotation marks. One more or one less /" will prevent your modification from taking effect. This is because there is an extra one here. "/", overturned. So what do these two parameters mean?
STATIC_ROOT is an absolute address. It is only used when Django is deployed. The folder it corresponds to is Store static files collected from various places in the project, because one Django may have multiple APPs. Correspondingly, each APP may have its own static files. The static files in each APP are collected together for unified use by nginx. . So who collects these files? This question will be discussed in the second step.
The function of STATIC_URL is to enable the browser to access your static files, and it serves as a mapping Function. Generally, the default setting is "/static/"
After the local css file is synchronized to the server, it is only synchronized to the static folder under the corresponding APP, but nginx, etc. What is called is the file in the STATIC_ROOT folder you set, so after code synchronization we have to perform this very important operation:
python manage.py collectstatic
After running this code, the main.css file just modified will be Collect it in the static file in the root directory of the website and wait for nginx to call it.
After completing the first two steps, you still need to restart gunicorn and nginx, but I It will take effect without restarting. If it does not take effect, it is recommended to perform this step.
# 查看gunicorn进程ID pstree -ap | grep gunicorn # 重启进程 kill -HUP ID
Recommended learning: css video tutorial
The above is the detailed content of What should I do if Django modified the css file but it doesn’t take effect?. For more information, please follow other related articles on the PHP Chinese website!