已更新,请检查更新部分。
我正在尝试在 Render 上部署 Django 应用程序。
在我的项目中,我有一些应用程序拥有自己的
urls.py
文件。然后,我将它们包含在项目的 url 中。看一下该项目的网址:
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('home.urls')),
path('about/', include('about.urls')),
path('kbdash/', include('management.urls')),
]
对于每个应用程序,网址如下所示:
urlpatterns = [
path('', about_page, name='about'),
]
除了
path('kbdash/', include('management.urls'))
之外,所有这些网址都有效
以下是管理应用程序的网址:
urlpatterns = [
path('', views.Dashboard.as_view(), name='dashboard'),
path('fuels/', views.fuel_list_view, name='fuel_list'),
]
主 url 文件中的所有 url 都可以正常工作,除了
kbdash/
访问
kbdash/
并在 kbdash/
下抛出 Server Error (500)
下的任何链接
与
/kbdash/
url 关联的视图。 :
class Dashboard(LoginRequiredMixin, generic.View):
def get(self, request, *args, **kwargs):
fuels = Fuel.objects.filter(status=1)
try:
total_sale = Sale.objects.filter(fuel__id__in = fuels).aggregate(Sum('total_amount'))['total_amount__sum']
if total_sale is None:
total_sale = 0
except:
total_sale = 0
context = {
'total_fuel_count': fuels.count(),
'fuels': fuels,
'total_sale': total_sale,
}
return render(request, 'management/dashboard.html', context)
我尝试在生产中将 DEBUG 更改为 True 以在浏览器中看到错误。这样做,url 就可以工作了。但即使 DEBUG 为 False,它也应该可以工作。
我不知道为什么会有这种行为。在本地计算机上它运行完美。
有人可以引导我走向光明吗...!
更新部分: 我使用了
ADMINS
中的 settings.py
设置。现在我的 Gmail 收件箱中出现了错误。
错误:
Internal Server Error: /kbdash/
ValueError at /kbdash/ Missing staticfiles manifest entry for 'select2/dist/css/select2.min.css' Request Method: GET Request URL: https://kb-cng-web.onrender.com/kbdash/
我使用 select2 来选择元素。它在本地完美运行。但在生产中它在静态文件中不可用。
我也尝试了源代码,但检查 url
/static/path/to/select2
显示它在生产中不可用。
有什么方法可以追踪它?
Base.html
https://jsfiddle.net/8ozt2761/
仪表板.html
我刚刚解决了。
我将 select2 源代码存储在 select2 文件夹中,如下所示:
select2/dist/css/select2.min.css
select2/dist/js/select2.min.js
因此,当在生产中运行collectstatic时,它没有在路径中找到源。
然后经过这么多次调试我改变了路径,直接将min.css和min.js放在select2文件夹下。
现在运行collectstatic后它找到了select2的路径。