您好,感谢您的提前帮助。我知道这个问题已经在其他地方提出并回答了,但是这些回答都没有用。
我是python和django的新手,并且继承了一个小型webapp。我的计算机上有一个开发环境,代码几乎没有变化,唯一的变化是指向我的本地mySQL服务器的数据库名称和密码。
但是,当我运行该应用程序时,除静态文件外,其他所有东西都可以正常工作。尝试检索静态文件时,控制台中出现404错误,而静态中的js方法未定义。
BASE_PATH,STATIC_URL,STATIC_ROOT,STATICFILES_DIR,STATICFILES_FINDERS与当前正在工作的生产代码均未更改,并且据我的初学者所知,根据文档和对该问题的多个答案进行了正确配置。
我在计算机上安装的内容可能与这有所不同吗?为什么生产版本和我的本地副本之间会有什么不同?要运行此功能,我需要运行某些东西吗?
settings.py中的某些设置:
<p id="demo"></p>
包含在模板中
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
INSTALLED_APPS = [
'biogen.apps.BiogenConfig',
'msm.apps.MsmConfig',
'tracker.apps.TrackerConfig',
'accounts.apps.AccountsConfig',
'process_manager.apps.ProcessManagerConfig',
'process.apps.ProcessConfig',
'pfd.apps.PfdConfig',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'djangobower',
'rest_framework',
'crispy_forms',
'django_summernote'
]
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
STATICFILES_DIR = [
os.path.join(BASE_DIR, 'components/static'),
]
STATICFILES_FINDERS = [
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
'djangobower.finders.BowerFinder',
]
再次感谢...
答案 0 :(得分:0)
提供类似这样的内容:
考虑在项目根目录static_files
中将其作为静态文件的源,将static
作为静态文件的目的地-您最初将其放置并编辑在static_files(或其他任何您拥有的文件)中:< / p>
STATICFILES_DIRS = (os.path.join(BASE_DIR, 'static_files'),
os.path.join(BASE_DIR, 'static_files/js'),
os.path.join(BASE_DIR, 'static_files/html'),)
STATIC_ROOT = os.path.join(BASE_DIR, 'static', )
STATIC_URL = '/static/'
请注意,它是STATICFILES_DIRS
,而不是STATICFILES_DIR
然后运行
python manage.py collectstatic
收集从static_files
到static
的静态文件
答案 1 :(得分:0)
尝试运行
python manage.py collectstatic
答案 2 :(得分:0)
原来,我需要从Bower加载所有静态文件。所有这些文件都存在于生产中,但由于某种原因不在开发中!