Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
未加载生产中的Django静态文件_Django_Django Staticfiles - Fatal编程技术网

未加载生产中的Django静态文件

未加载生产中的Django静态文件,django,django-staticfiles,Django,Django Staticfiles,我的Django应用程序中的静态文件有问题 我用Django REST框架和Angular 6创建了一个简单的博客应用程序。它在我本地的开发环境中运行良好,但我在将其部署到生产环境中时遇到了问题。问题是,应用程序正在加载(我知道这是因为根路由是到/app的重定向,并且我被正确重定向),但是没有加载静态文件 以下是与静态文件相关的部分配置: STATIC_URL = '/static/' BASE_DIR = os.path.join( os.path.dirname(os.path.di

我的Django应用程序中的静态文件有问题

我用Django REST框架和Angular 6创建了一个简单的博客应用程序。它在我本地的开发环境中运行良好,但我在将其部署到生产环境中时遇到了问题。问题是,应用程序正在加载(我知道这是因为根路由是到/app的重定向,并且我被正确重定向),但是没有加载静态文件

以下是与静态文件相关的部分配置:

STATIC_URL = '/static/'
BASE_DIR = os.path.join(
    os.path.dirname(os.path.dirname(__file__)), '..', '..', '..'
)
STATIC_ROOT = os.path.join(BASE_DIR, 'app', 'static')
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'frontend'),
]

INSTALLED_APPS = [
    ...
    'django.contrib.staticfiles'
    ...
]
路径是正确的,我对它们进行了三次检查以确保正确。以下是Django应用程序中配置的路由:

urlpatterns = [
    url('^api/', include(api_patterns)),
    url('^admin/', admin.site.urls),
    url('^app/', serve, kwargs={'path': 'index.html'}),
    url('^$', HomepageView.as_view(), name='homepage-redirection'),
]
我能够运行
manage.py collectstatic
,没有任何错误,并且所有静态文件都已正确复制到静态目录。管理员应用程序的静态文件也未正确加载。以下是我的项目中目录的大致结构:

├── app
│   └── (python code here)
├── frontend
│   └── (angular code here)
├── media
│   └── (empty for now)
└── static
    └── (static files for Django)

应用服务器是带有Phusion Passenger的nginx(这是由我租用服务器的公司配置的)。我真的不知道我还能在这里补充什么。有人知道这里会出什么问题吗?可能有一些提示是API端点不可访问。我可以访问管理应用程序,但不能访问API(两者都在同一个URL文件中配置)。

我以前见过类似信息的可能副本,但我非常确定服务器配置正确。我会再检查一遍。那么您的nginx是否正确配置为提供静态文件所在文件夹中的文件?打开浏览器控制台,查看404错误。路径是你所期望的吗?我能看看你的nginx配置吗?我也猜这是nginx的问题。您确定您的应用程序正在显式地为来自/静态的图像提供服务吗?如果您的angular应用程序也提供了a/static,则可能存在冲突。你能发布你的服务器配置吗?