русский
Germany.ruForen → Архив Досок→ Webdesign und Hosting

LINK href=...

769  1 2 alle
Murr коренной житель07.06.10 16:30
Murr
NEW 07.06.10 16:30 
Это опять Я со своими глупыми вопросиками...
Все мы (ну за исключением самых бестолковых) знаем, что Каскадные Стили лучше всего хранить в отдельном файлике.
Ну скажем вот так:
В ответ на:
<LINK REL="stylesheet" HREF="CSS/MyCss.css" TYPE="text/css">

Реально у меня в этом файлике лежит бекгроунд для странички - небольшая картинка, множащаяся до заполнения странцы. Сделано для меньшения нагрузки на (мои) глаза.
Пока этот файлик один... или их с десяток-другой в одной папке - проблем нет.
Однако, если его надо перенести в подпапочку, то линк надо слегка отредактировать.
Вот так, например:
В ответ на:
<LINK REL="stylesheet" HREF="../CSS/MyCss.css" TYPE="text/css">

Еще один уровень папочек -
В ответ на:
<LINK REL="stylesheet" HREF="../../CSS/MyCss.css" TYPE="text/css">

У меня папочек набирается примерно полтора десятка уровней.
Соответственно, LINK превращается в достаточно кошмарню штуку.
Дополнительно, файлики реглярно перекидываются выше/ниже...
Возможные варианты относительных путей Я уже перебрал - корректно работает только приведенный.
Можно, разумеется, сделать что-то типа:
В ответ на:
<LINK REL="stylesheet" HREF="http://localhost/MyCss/CSS/MyCss.css" TYPE="text/css">

но это требет привязки к веб-серверу, что на сегодня есть весьма не желательно.
Так же не желательно давать абсолютный - href=file://... - путь к файлу - диск-диск тоже случается.
Вопросик такой - Есть ли трюк, позволяющий иметь постоянный, безотносительный, href, при относительном положении страницы?
#1 
gendy Dinosaur07.06.10 17:12
gendy
NEW 07.06.10 17:12 
in Antwort Murr 07.06.10 16:30
если страница создаётся динамически, в чём проблема через скрипт передавать актуальный адрес из константы в конфигфайле или его рассчитывать?

Фашизм будет разбит


Человека карают только те боги, в которых он верит

#2 
katran76 коренной житель07.06.10 17:14
NEW 07.06.10 17:14 
in Antwort Murr 07.06.10 16:30
В ответ на:
HREF="http://localhost/MyCss/CSS/MyCss.css"
но это требет привязки к веб-серверу, что на сегодня есть весьма не желательно.

можно ещё привязать к руту веб-сервера (исчезает зависимость от "http://bla.bla.bla")
HREF="/MyCss/CSS/MyCss.css"


#3 
Murr коренной житель07.06.10 17:30
Murr
NEW 07.06.10 17:30 
in Antwort gendy 07.06.10 17:12
если страница создаётся динамически
-----
Какой движек создает динамические страницы без использования IIS?
Вариант с использованием - уже рассмотрел, если не будет другого
- использую.
Страницы - статические. Страниц - много. Лежат на локальном диске.
Содержание - описание содержания конкретной папки ReadM.html.
Плюс - возможность бегать туда-сюда по проектам.
Все очень динамичное и часто меняющееся.
через скрипт передавать актуальный адрес из константы в конфигфайле
или его рассчитывать?
-----
Бррр... это Я представил этот геморой...
Виртуальная директория на IIS и все линки на нее - ничего считать не
надо.
Что надо - надо помнить, что эта директория должна быть и что IIS
должен работать... На всех 10-15 использемых осях...
Правда Я пока плохо представляют *.BAT, который сможет это фиксить,
а руками делать не хочется.
#4 
Murr коренной житель07.06.10 17:37
Murr
07.06.10 17:37 
in Antwort katran76 07.06.10 17:14
HREF="/MyCss/CSS/MyCss.css"
-----
Это уже теплее. Правда есть два НО.
Первое - требуется IIS.
Второе - документы грузятся напрямую с диска (не по HTTP, а по FILE) и привязка (у меня) происходит относительно положения документа на диске.
#5 
Poiser знакомое лицо07.06.10 17:47
Poiser
NEW 07.06.10 17:47 
in Antwort Murr 07.06.10 17:37
Если у вас всё так сложно, то что мешает выложить файл CSS в сеть (локальную или интернет) и прописывать путь к нему как http://myhost.de/css/style.css ??
Создание сайтов, онлайн-магазинов в Германии
#6 
Murr коренной житель07.06.10 18:01
Murr
07.06.10 18:01 
in Antwort Poiser 07.06.10 17:47
в сеть
-----
У меня не всегда есть сеть.
Даже не всегда есть адаптер 127.0.0.1, чтобы запустить хоть что-то...
Собственно по-этому и возник вопрос - локальные файлы, полчаемые по клику на них и непостоянный LINK href=...
Одно успокаивает - большой проблемы при незагрженном CSS не будет. Читать будет не так удобно, но не смертельно...
#7 
Poiser знакомое лицо07.06.10 18:09
Poiser
NEW 07.06.10 18:09 
in Antwort Murr 07.06.10 18:01
Тогда просто не используйте CSS пишите всё так через аттрибут style="тут ваши цсс", если конечно как вы говорите используется CSS мало.
Создание сайтов, онлайн-магазинов в Германии
#8 
Oleg.de старожил07.06.10 18:11
Oleg.de
NEW 07.06.10 18:11 
in Antwort Murr 07.06.10 18:01
Ничего вам не сделать на локалке и без настроенного сервера :-)
Ставьте нормальный эдитор типа Dreamviewera он сам за вас все пути будет в файлах менять и следить за переносом файлов :-)))
О Германии на русском: Законы, карьера, общество ...
#9 
project33 старожил07.06.10 18:13
project33
NEW 07.06.10 18:13 
in Antwort Murr 07.06.10 16:30
можно добавить яваскрипт, который находит текущий путь (window.location), парсит его, выделяет относительный путь и динамически подключает css
Продвижение сайтов, реклама: https://www.pro33.net
#10 
Oleg.de старожил07.06.10 18:20
Oleg.de
NEW 07.06.10 18:20 
in Antwort project33 07.06.10 18:13
В ответ на:
можно добавить яваскрипт, который находит текущий путь (window.location), парсит его, выделяет относительный путь и динамически подключает css

??? можно поподробней ???
О Германии на русском: Законы, карьера, общество ...
#11 
project33 старожил07.06.10 18:28
project33
NEW 07.06.10 18:28 
in Antwort Oleg.de 07.06.10 18:20
можно. находим путь через window.location. например file:///C:/odner1/ordner2/ordner3/file.htm. Считаем слеши - 7 штук. Убираем лишние, остаются 3. Создаем строчку var style="../../../style.css". Добавляем динамический стиль например так
var st = document.createElement("link");
st.setAttribute("rel","stylesheet");
st.setAttribute("href",style);
document.body.appendChild(st);
ну это все чисто теория, поскольку реально легче засунуть сам стиль тегами <style></style>
Продвижение сайтов, реклама: https://www.pro33.net
#12 
Oleg.de старожил07.06.10 18:32
Oleg.de
NEW 07.06.10 18:32 
in Antwort project33 07.06.10 18:28
В ответ на:
Считаем слеши - 7 штук.

В ответ на:
У меня папочек набирается примерно полтора десятка уровней.

Я так понимаю, что автору надо будет в каждой папке считать слеши :-))))
О Германии на русском: Законы, карьера, общество ...
#13 
Murr коренной житель07.06.10 18:34
Murr
NEW 07.06.10 18:34 
in Antwort project33 07.06.10 18:13
можно добавить яваскрипт, который находит текущий путь (window.location),
парсит его, выделяет относительный путь и динамически подключает css
-----
Можно. Правда есть ньюансик.
Путь к файлу выглядит нормально. Например так:
В ответ на:
F:\Projects\blax\blax...(тут еще 10 blax)...blax\ReadMe.html

Завтра будет загружена другая система и путь будет:
В ответ на:
H:\Projects\blax\blax...(тут еще 10 blax)...blax\ReadMe.html

Дополнительно при этом место размещения CSS поменяется (условно) с
диска P: на R: с постоянным (тем же) путем.
Т.е. чтобы Я не писал - нужна какая-то внешняя точка привязки и жабий скрипт ее не
получит (файловые операции ему по понятным причинам запрещены), как бы Я не
извращался...
#14 
project33 старожил07.06.10 18:34
project33
NEW 07.06.10 18:34 
in Antwort Oleg.de 07.06.10 18:32
я не говорил что считать слеши нужно вручную, для этого пишется парсер
Продвижение сайтов, реклама: https://www.pro33.net
#15 
project33 старожил07.06.10 18:35
project33
NEW 07.06.10 18:35 
in Antwort Murr 07.06.10 18:34
имя диска роли не играет. путь считается назад от документа
Продвижение сайтов, реклама: https://www.pro33.net
#16 
Murr коренной житель07.06.10 18:42
Murr
NEW 07.06.10 18:42 
in Antwort Oleg.de 07.06.10 18:11
Ничего вам не сделать на локалке и без настроенного сервера
-----
Ну сейчас же работает. :) Правда редактирование довольно неприятное...
эдитор типа Dreamviewera он сам за вас
-----
Хи-хи...
Для любителей Дримвьювера у меня есть другой вопросик.
Вот с этим разберусь - тогда задам его и посмотрим как это получится.
Могу сказать, что связано все будет с динамическим отображением разношерстых
данных увязанных где-то в базе в древовидную структуру...
#17 
Murr коренной житель07.06.10 18:57
Murr
NEW 07.06.10 18:57 
in Antwort project33 07.06.10 18:35
путь считается назад от документа
-----
У меня сейчас так и происходит. Руками, правда.
имя диска роли не играет.
------
Только в пределах одного диска.
Но! Ты не обратил внимание - стили могут лежать на другом диске и он тоже
меняется и это не зависит от меня.
Если бы не это, то нично не мешает писать href="file://R:/blax/blax/MyCss.css"
В принципе, Я, наверное, так и сделаю, добавив в AUTOEXEC какой-нибудь SUBST
на нужную папку... Редактировать ручками, но не так много... Остается только не
забыть... лет через пять... как сделано...
Можно еще продублировать CSS на каждом диске... но это не вариант - много
менять при изменениях...
#18 
Murr коренной житель07.06.10 19:02
Murr
NEW 07.06.10 19:02 
in Antwort Poiser 07.06.10 18:09
пишите всё так через аттрибут style
-----
Плс, - вторая строка первого поста - именно файловый CSS.
Я тут поменял все LINK'и в своих ReadMe.html - полчаса.
Если менять встроенный CSS - ну его вообще нафиг...
Самая неприятная для меня работа - делать много, результата - ноль...
#19 
Poiser знакомое лицо07.06.10 19:18
Poiser
NEW 07.06.10 19:18 
in Antwort Murr 07.06.10 19:02
На мой взгляд тут ошибка на стадии концепта, т.е. вам нужен более системный подход
1. анализ задач
2. анализ способов решения
3. выбор средств
Если вы действительно имеете только локальные папки, и хотите обходится только ими, то тогда пишите утилиту которая с использованием регулярных выражений будет вам всё корректно править :) обходить рекурсивно папочки, находить там нужный html файл и проверять корректность пути к css файлу. Вопрос как всегда в эффективности и затратах на доп. телодвижения
Создание сайтов, онлайн-магазинов в Германии
#20 
1 2 alle