Есть ли способ изменить «текущий рабочий каталог» содержимого Тег <script>
? Структура каталогов на моем сервере выглядит так:
├── css
│ ├── flexigrid.css
│ └── images
│ ├── bg.gif
│ ├── ...
│ └── wbg.gif
└── js
└── flexigrid.js
3 directories, 21 files
Так что, если бы в моем <head>
был только такой тег, я был бы в порядке:
<link rel='stylesheet' type='text/css' href='/css/flexigrid.css' />
Но я загружаю содержимое файла как текст и вставляю его в заголовок с помощью javascript:
// 'css' is a string containing the text of flexigrid.css
var css_el = document.createElement('style');
css_el.type = 'text/css';
css_el.innerHTML = css;
document.getElementsByTagName('head')[0].appendChild(css_el);
В результате в таблице стилей появляются такие строки:
background: #eee url(images/line.gif) repeat-y -1px top;
Загружать URL-адреса типа /images/line.gif
вместо /css/images/line.gif
. Здесь способ создать тег <style>
так, чтобы вызовы url()
начинались в Каталог /css
вместо базового каталога без необходимости поиск и замена в javascript ?
2 ответа
Эта способность и кеширование CSS - две основные вещи, которые вы теряете, когда включаете CSS в строку.
Единственное, что вы можете сделать для крошечных изображений, таких как пуля или линия, - это преобразовать их в data: URL a> и не беспокойтесь об относительных URL.
style
, но не хотите использовать JavaScript для правильного форматирования / представления вставленныхstyle
?