.htaccess несовместимое поведение перенаправления

Есть множество примеров , показывающих, как добавлять метки к визуализации графа и дерева, но я, вероятно, начинаю с этого как самый простой:

Вы не разместили ссылку на свой код, но я предполагаю, что node ссылается на выбор элементов окружности SVG. Вы не можете добавлять текстовые элементы в элементы окружности, поскольку элементы окружности не являются контейнерами ; добавление текстового элемента в круг будет проигнорировано.

Обычно вы используете элемент G для группировки элемента окружности (или элемента изображения, как указано выше) и текстового элемента для каждого узла. Полученная структура выглядит так:


  
  Gavroche

Используйте data-join для создания элементов G для каждого узла, а затем используйте selection.append , чтобы добавить круг и текстовый элемент для каждого. Что-то вроде этого:

var node = svg.selectAll(".node")
    .data(nodes)
  .enter().append("g")
    .attr("class", "node")
    .call(force.drag);

node.append("circle")
    .attr("r", 4.5);

node.append("text")
    .attr("dx", 12)
    .attr("dy", ".35em")
    .text(function(d) { return d.name });

. Один недостаток этого подхода состоит в том, что вы можете захотеть, чтобы метки были нарисованы поверх кругов. Поскольку SVG еще не поддерживает z-индекс, элементы рисуются в порядке документа; поэтому вышеприведенный подход заставляет метку нарисовать над ее окружностью , но ее можно нарисовать в других кругах . Вы можете исправить это, используя два объединения данных и создание отдельных групп для кругов и меток, например:


  
  

  Gavroche
  Valjean

И соответствующий JavaScript:

var circle = svg.append("g")
    .attr("class", "nodes")
  .selectAll("circle")
    .data(nodes)
  .enter().append("circle")
    .attr("r", 4.5)
    .call(force.drag);

var text = svg.append("g")
    .attr("class", "labels")
  .selectAll("text")
    .data(nodes)
  .enter().append("text")
    .attr("dx", 12)
    .attr("dy", ".35em")
    .text(function(d) { return d.name });

Этот метод используемый в примере мобильных патентных костюмов (с дополнительным текстовым элементом, используемым для создания белой тени).

1
задан mikekehrli 13 July 2018 в 07:37
поделиться

2 ответа

Если вы хотите отлаживать такое поведение, первым рефлексом, который нужно принять, является анализ сетевого трафика и заголовков HTTP. Благодаря этому вы бы увидели, что папки inc и pages заканчиваются кодом 403 (Forbidden). Вам нужно изменить разрешения на эти папки (и файлы рекурсивно, возможно).

bak тестовый выход папки:

inc (то же самое для файла pages):

НО, с точки зрения SEO, что вы пытаетесь делать не хорошо. Вы должны сохранить ErrorDocument 404 /file_not_found и удалить свои правила переадресации. Он автоматически отправляет код 404 (не найден) без изменения URL-адреса. Быстрое напоминание: изменение URL означает перенаправление, в вашем случае вы отправляете код 302 (Moved Temporarily) вместо 404, что не является ожидаемым поведением.

1
ответ дан Justin Iurman 17 August 2018 в 13:26
поделиться
  • 1
    – mikekehrli 13 July 2018 в 18:51
  • 2
    Ну, если это не проблема с правами доступа, убедитесь, что в этих папках не разрешено разрешение на владение. В противном случае это может быть связано с вашей конфигурацией apache – Justin Iurman 13 July 2018 в 20:05

Хорошо, это разрешилось благодаря ответу Джастина. Хотя, я точно не знаю, почему. Разрешения и права доступа к файлам во всех трех каталогах были идентичны. Итак, я до сих пор не знаю, почему один работал правильно, а другой 2 - нет. Не было разрешения или права собственности, вызывающего код статуса 403. Dirs были 755, а файлы были 644.

Но я пробовал делать разрешения для всех 3 этих дисков 700. После этого все переадресации работали, как ожидалось. Но это противоречит интуиции. Неправильное поведение давало код статуса 403 (запрещено). И затем, когда я изменил разрешения, чтобы каталог действительно запрещался, он перенаправляется с помощью параметра 302. Go. Но это работает.

Кстати, я бы сказал, если бы смог ответить на вопрос Джастина. Совет для анализа кода состояния поможет мне в будущем. Я не знал об этом.

позже отредактировал: я удалил все переадресации, и теперь я использую только права на файл. Я создал документы 404 и 403, и все работает нормально. Стоит отметить, что использование директивы ErrorDocument приводит к отправке с кодом 302. Но это должно найти SEO-мудрый, поскольку ни один из них не связан нигде. Все нормальные страницы имеют код состояния 200.

0
ответ дан mikekehrli 17 August 2018 в 13:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: