404找不到静态文件-Django

问题描述

我对django有问题。我最近购买了一个共享服务器的实例,我想将django网站从AWS移到该服务器(使用Cpanel)。在AWS上一切正常,但是当我切换到Cpanel时,所有静态文件都丢失了。

这是我的设置。py:

STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR,'static')

MEDIA_ROOT = os.path.join(BASE_DIR,'media')
MEDIA_URL = "/media/"

STATICFILES_Dirs = [
    os.path.join(BASE_DIR,'static'),]

我的项目结构:

my_project
|-app/
    |-...
    |-views.py
|-db.sqlite3
|-manage.py
|-media/
|-my_project/
    |-...
    |-settings.py
|-static/
    |-main_page/
        |-js/
            |-my-script.js

我这样添加静态文件

{% load static %}
<script src="{% static 'main_page/js/my-script.js' %}"></script>

这是错误

GET http://my.domain.com/static/main_page/js/my-script.js net::ERR_ABORTED 404 (Not Found)

当我转到文件的URL时,它像我的URL之一一样理解它:

404 error screenshot

希望您能帮助我解决此问题;) 谢谢。

解决方法

您需要像这样在urls.py中添加静态和媒体文件配置

from django.conf import settings
from django.conf.urls.static import static

urlpatterns = [
    # ... the rest of your URLconf goes here ...
] 
urlpatterns  +=  static(settings.STATIC_URL,document_root=settings.STATIC_ROOT)
urlpatterns += static(settings.MEDIA_URL,document_root=settings.MEDIA_ROOT)

django文档:https://docs.djangoproject.com/en/3.1/howto/static-files/

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...