Оригинал: Прокрутите, чтобы увидеть самые последние новости, это оригинальное сообщение
Кажется, что таблицы данных работают только при переходе непосредственно к моей сети Djangoприложение на http://server.com:9001, даже когда я проксировал весь HTTP-трафик до 9001.
Снимок экрана при просмотре с http://server.com:9001/stores
Снимок экрана при просмотре с http://server.com/stores
Дата данных просто отказывается работать.Что еще более странно, у меня есть другая таблица данных в / servers , которая делает то же самое, но идентичная таблица в / closed-stores работает последовательно (я обновлял десятки раз встрока, чтобы попытаться сломать ее, и она не будет).
JS каждой из этих таблиц просто $('#table-id').Datatable();
, но я оставлю это как его четко работающий, поэтому я считаю, что это мой Nginx.conf может быть, или что-то связанное с Django?
Также отмечу, что в консоли во всех сценариях есть 0 ошибок.
Nginx.conf
server {
listen 80 default_server;
#listen [::]:80 default_server;
server_name _;
root /usr/share/nginx/html;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location / {
proxy_pass http://127.0.0.1:9001;
}
location /static {
autoindex on;
alias /home/usr/applications/it-database/static/;
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
Стоит отметить, что эти таблицы прекрасно работали без единой проблемы в течение почти 2 месяцев с моего сервера разработки Windows Server 2016, но при переходе на CentOS это начало происходить.Я включил это только потому, что совершенно не представляю, в чем может быть проблема.
Обновление 1: После небольшого осмотра я обнаружил, что проблема заключается в том, что для одногопричина или другой мой контекст данные каким-то образом обрезаются.Если я указываю номер порта, мне выдаются все полные данные, поэтому таблицу можно преобразовать в таблицу данных, но если я не укажу номер порта, данные будут обрезаны в Store 386 (иногда больше, иногда меньше, всегда в этой области).
Я вижу, что в некоторых версиях Chrome доступ к конечной точке /stores/
выдаст ошибку net::ERR_CONTENT_LENGTH_MISMATCH
.Многие говорили, что в предыдущих версиях это было связано с заказами промежуточного программного обеспечения, но с тех пор было решено.
Мое промежуточное ПО:
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
/ stores / view:
@login_required
def stores(request):
stores = Store.objects.exclude(street_address__contains="closed").all()
context = {
'stores':stores,
}
return render(request, 'all_stores.html', context)
Шаблоны магазинов:
{% extends 'base.html' %}
{% block title %} All Stores - Stores Database {% endblock %}
{% block body %}
<br>
<div class="flex_container">
<h2>Store Database</h2>
<div class="table_header" style="float: left; position: relative;">
<br>
<h4>All Locations</h4>
</div>
<table id="store-table" class="table-striped table-hover">
<thead class="thead-light">
<tr>
<th>Store #</th>
<th>Name</th>
<th>Phone</th>
<th>City</th>
<th>State</th>
<th>Zip Code</th>
<th>Circuit</th>
</tr>
</thead>
<tbody>
{% for store in stores %}
<tr id="table-row">
<td><a href="/stores/{{ store.pk }}">{{ store.store_number }}</a></td>
<td><a href="/stores/{{ store.pk }}">{{ store.name }}</a></td>
<td>{{ store.phone }}</td>
<td>{{ store.city }}</td>
<td>{{ store.state }}</td>
<td>{{ store.postal }}</td>
<td>
{% for circuit in store.circuit_set.all %}
<p>{{ circuit.circuit_id }}</p>
{% endfor %}
</td>
</tr>
{% endfor %}
</tbody>
</table>
<script>
$(document).ready(function () {
$('#store-table').DataTable();
});
</script>
{% endblock %}