вторник, 31 мая 2011 г.

Где разместить файлы в сети для blogger или как изменить mime type в хранилище кода Google

Такая потребность появляется сразу, как только появляется желание до настроить свой блог.  Хотя нет - в полной мере такая потребность появляется, когда блог начинает неприятно тормозить! И вот мы начинаем разбираться что же не так. 

Сейчас буду заводить рака из-за горы, но надеюсь это будет полезно.


Если посмотреть все настройки, которые я сделал для своего блога, то почти во всех них есть изменение кода блога или подключение новых внешних файлов. 


Но скажу сразу - если Вы делает блог для себя и Вас не раздражает как он долго грузиться, далее можете не читать. 


Я не претендую на то, что бы называть себя гуру оптимизации загрузки сайтов.  Но базовый принцип прост - Количество файлов, которые загружаются с вашей страницей должно быть минимально. Чем больше внешних файлов подключается, тем медленнее загружается страница.


Кроме того что она медленно грузиться, так и поисковики такие сайты опускают в низ (но не подтверждённой информации).


Таким образом надо сделать простую вещь - количество внешних файлов должно быть минимизировано! Иными словами все скрипты, которые Вы размещаете у себя, должны быть убраны в один файл. То же самое и со стилями. 


Почему убрать в отдельный файл? Да потому что браузер загрузит его только раз и сделает локальную копию. И потом не будет грузить, если файл не изменился. Таким образом все скрипты и стили  уйдут из главной страницы. Главная страница станет меньше и будет грузиться быстрее.


Так, теперь возвращаемся к нашей теме. Blogger не предоставляет такой возможности, как хранение пользовательских файлов.  Поэтому надо искать решение на стороне. 


Сейчас много всяких файлохранилищ и там можно в общем то всё разместить. Но я думаю что это очень не красиво - блог на Google, а файлы на Yandex. Надо что бы всё было в одном месте.  Кроме внешней эстетики, у данного подхода выше процент отказоустойчивости - все ресурсы лежат в одном месте.


Первое хранилище которое я использовал - был бесплатный сайт от Google.  Я там изначально разместил favicon для блога. Но как бы я не старался там разместить скрипты или файлы стилей - ничего не получалось. Половина браузеров выдавала ошибку о несоответствии содержимого файла и его типа. Иными словами в файле содержится JavaScript, а когда сервер отдаёт файл, он говорит что это просто текст.  И соответственно файл не обрабатывался браузером.


Второе хранилище - это проект Google Code. Цель данного проекта - предоставить место хранения исходного кода для открытых проектов и собственно управления ими. И тут у меня почти получилось - загруженные скрипты работали, а вот файлы стилей нет. Хотя при этом браузер ругался на оба файла.


Собственно вторая итерация по изучению этого сервиса Google дала свои плоды. И теперь я размещаю все необходимые файлы для своего блога в одном проекте. И самое главное - всё работает!


Итак, первым делом Вам необходимо создать свой проект:

  1. Идём на страницу создания нового проекта - сюда.
  2. В поле Project nameУказываем название проекта латинскими буквами. Я написал просто - sedegoff-blogger ))))
  3. В поле Project summary пишем краткое описание. Я написал "Всякие плагины для платформы blogger"
  4. В поле Description  Я написал "В этом проекте будут размещены всякие плагины, которые я посчитал полезными, для блога. Блог создан на платформе blogger.com"
  5. В выпадающем списке Version control system выбираем Subversion.
  6. В выпадающем списке Source code license выберите лицензию, по которой Вы будете распространять свой код. Я выбрал Apache License 2.0
  7. В полях Project label(s) пишите что хотите, но я рекомендую написать то, что будет реально у Вас размещено. Для своего проекта я ввёл Blogger и  plugin.
  8. Нажимаем кнопку Create Project.
  9. Вы попадаете на страницу своего проекта.


Собственно какие то файлы можно разместить на закладке Download. Именно первый раз я и пытался там разместить файлы скриптов и стилей. Но, как я говорил выше, они отдаются сервером с неправильным типом. И что ещё хуже - их нельзя исправить, удалить или ещё что то. То есть каждую новую версию файла надо загружать с новым именем.

Выход собственно в использовании системы контроля версий Subversion. Если Вы не разу с этим не работали - то это прекрасный повод познакомиться. Сложного ничего нет.

Теперь надо поставить ПО, с помощью которого мы будем загружать данные на сервер со своего компьютера. Собственно список программ, которые рекомендует сам Subversion, представлен на закладке Sourceclient programs and plug-ins

Собственно я сейчас расскажу про две программы. 

Первая - встраивается в проводник Windows - TortoiseSVN. Плюс её в том, что можно использовать любую среду разработки и размещать файлы на сайте проекта. 

Вторая - это собственно среда разработки, которой я пользуюсь - NetBeans (Версия для php).  В эту среду встроен клиент Subversion.

Но прежде нужно получить следующие параметры:
  1. Адрес репозитория - он отображается на закладке Source, там закладка Checkout. У меня этот адрес https://sedegoff-blogger.googlecode.com/svn/ 
  2. Логин - это Ваш Email в Google
  3. Пароль. А вот пароль тут свой. И что бы его получить, надо зайти в настройки. Для этого идём на закладку Project Home,  там в блоке Members щёлкаем на своём имени.  На открывшейся странице переходите на закладку Settings - вот там Вы и увидите свой пароль.

Итак, скачали TortoiseSVN, установили и теперь скачать проект к себе на компьютер и можно работать:
  1. Идём в нужную нам папку, щелкаем правой кнопкой мыши и выбираем пункт SVN Checkout
  2. В открывшемся окне вводим адрес репозитория в поле URL of Repository. В поле Checkout directory можете указать место, куда выгрузить проект.  
  3. Собственно результат можем видеть в папке. 
  4. Как и где размещать Вас свои файлы - Ваше дело. Я сделал папку blogger в ней всё разместил.
Как создать свою папку в хранилище кода:
  1. В проводнике внутри папки выгруженного выше проекта создаём нужную папку. 
  2. Теперь щёлкаем правой кнопкой мыши на новой папке, выбираем пункт TortoiseSVN, в открывшемся подменю выбираем пункт Add.
  3. В открывшемся окне нажимаем кнопку Ok.
  4. Получаем подтверждение об успешной операции.
  5. Теперь нужно закомитить изменение. Это от слова Commit. Щёлкаем правой кнопкой на папке и выбираем пункт SVN Commit.
  6. В открывшемся окне, в поле Message вводит сообщение, если Вам это требуется. Я туда пишу почему я этот коммит делаю. То есть например "Добавил новый стиль" или "Изменил функцию спойлера".  И нажимаем кнопку Ок. 
  7. Если вы первый раз комитете код или же Вы не сохраняли пароль, система запросит у Вас данные по авторизации. Вводите в качестве логина свой адрес. А где смотреть пароль - я описал выше. Вводите данные и нажимаете Ок. Я у себя галочку сохранения авторизации поставил.
  8. Ну собственно всё - папка создана.
Как добавить файл в хранилище кода google и указать mime-type :
  1. Создаёте файл в удобном Вам редакторе и размещаете его в нужной папке выгруженного репозитория. Так же как с папкой щелкаете правой кнопкой и  выбираем пункт TortoiseSVN, в открывшемся подменю выбираем пункт Add
  2. Теперь самое главное - щелкаете правой кнопкой на файле ещё раз, выбираем пункт TortoiseSVN, в открывшемся подменю выбираем пункт Properties.   
  3. В открывшемся окне нажимаем кнопку New - попадаем в окно добавления параметра.   выпадающем списке Property name  выбираем пункт "svn:mime-type", а в поле Property value  вводим требуемое нам значение. В моём примере это text/css. Кстати - можно выделить через Shift или Ctrl нужные файлы и задать им свойство сразу. 
  4. Нажимаем в двух подряд идущих окнах Ок, и выполняем операцию коммита. 
  5. Теперь добавленный файл можно использовать на других страницах. Адрес файла формируется так: [имя проекта].googlecode.com/svn/[путь до файла]. На моём примере это http://sedegoff-blogger.googlecode.com/svn/New%20Add%20Folder/mystyle.css


Теперь расскажу как сделать тоже самое для среды NetBeans. По сути принцип тот же, что и выше. Поэтому расскажу только об отличиях:

Что бы выгрузить проект:
  1. В главном меню выбираем пункт Группа, в открывшемся подменю выбираем подпункт Система управления исходным кодом Subversion, и в ещё одном подменю выбираем пункт Получить
  2. В результате открывает окно ввода параметров для получения кода.
  3. Вводим нашу информацию и нажимаем кнопку Далее
  4. В открывшемся окне указываем дополнительные параметры. Я например указал папку, которую мне необходимо выгрузить. Так же указывается место, где необходимо расположить полученные файлы. 
  5. Если Вы делаете это первый раз, то NetBeans предложит создать Вам проект на основании файлов. Если же в репозитории уже был залит проект, то предложит его открыть. 
Добавление новых папок выполняется средствами NetBeans. А что бы закомитеть изменения всего проекта или только изменения, то щелкаете правой мыши и в открывшемся контекстном меню выбираете пункт  Система управления исходным кодом Subversion, там пункт Фиксация. В результате все изменения будут загружены на сервер.

Что бы задать MIME для файла, необходимо ДО(!!!) первого коммита (бррр фиксации!), установить этот параметр. Для этого:
  1. Выбираете один или несколько файлов и щёлкаете правой кнопкой мыши на них. В открывшемся меню выбираете пункт Система управления исходным кодом Subversion,  в открывшемся подменю выбирает пункт Свойства SVN. 
  2. В результате откроется окно редактора свойств SVN. 
  3. В выпадающем списке Имя свойства, выбираете значение SVN:mime-type, а вопле Значение свойства, пишете требуемые тип - у меня это text/css
  4. Выполняете коммит (бррр! Фиксацию!) файла.


Ну собственно всё - приятной Вам работы!




И в качестве бонуса - список mime типов:
Расширение файла
MIME type
.3dm
x-world/x-3dmf
.3dmf
x-world/x-3dmf
.a
application/octet-sdiveam
.aab
application/x-authorware-bin
.aam
application/x-authorware-map
.aas
application/x-authorware-seg
.abc
text/vnd.abc
.acgi
text/html
.afl
video/animaflex
.ai
application/postscript
.aif
audio/aiff
.aif
audio/x-aiff
.aifc
audio/aiff
.aifc
audio/x-aiff
.aiff
audio/aiff
.aiff
audio/x-aiff
.aim
application/x-aim
.aip
text/x-audiosoft-indiva
.ani
application/x-navi-animation
.aos
application/x-nokia-9000-communicator-add-on-software
.aps
application/mime
.arc
application/octet-sdiveam
.arj
application/arj
.arj
application/octet-sdiveam
.art
image/x-jg
.asf
video/x-ms-asf
.asm
text/x-asm
.asp
text/asp
.asx
application/x-mplayer2
.asx
video/x-ms-asf
.asx
video/x-ms-asf-plugin
.au
audio/basic
.au
audio/x-au
.avi
application/x-divoff-msvideo
.avi
video/avi
.avi
video/msvideo
.avi
video/x-msvideo
.avs
video/avs-video
.bcpio
application/x-bcpio
.bin
application/mac-binary
.bin
application/macbinary
.bin
application/octet-sdiveam
.bin
application/x-binary
.bin
application/x-macbinary
.bm
image/bmp
.bmp
image/bmp
.bmp
image/x-windows-bmp
.boo
application/book
.book
application/book
.boz
application/x-bzip2
.bsh
application/x-bsh
.bz
application/x-bzip
.bz2
application/x-bzip2
.c
text/plain
.c
text/x-c
.c++
text/plain
.cat
application/vnd.ms-pki.seccat
.cc
text/plain
.cc
text/x-c
.ccad
application/clariscad
.cco
application/x-cocoa
.cdf
application/cdf
.cdf
application/x-cdf
.cdf
application/x-netcdf
.cer
application/pkix-cert
.cer
application/x-x509-ca-cert
.cha
application/x-chat
.chat
application/x-chat
.class
application/java
.class
application/java-byte-code
.class
application/x-java-class
.com
application/octet-sdiveam
.com
text/plain
.conf
text/plain
.cpio
application/x-cpio
.cpp
text/x-c
.cpt
application/mac-compactpro
.cpt
application/x-compactpro
.cpt
application/x-cpt
.crl
application/pkcs-crl
.crl
application/pkix-crl
.crt
application/pkix-cert
.crt
application/x-x509-ca-cert
.crt
application/x-x509-user-cert
.csh
application/x-csh
.csh
text/x-script.csh
.css
application/x-pointplus
.css
text/css
.cxx
text/plain
.dcr
application/x-director
.deepv
application/x-deepv
.def
text/plain
.der
application/x-x509-ca-cert
.dif
video/x-dv
.dir
application/x-director
.dl
video/dl
.dl
video/x-dl
.doc
application/msword
.dot
application/msword
.dp
application/commonground
.drw
application/drafting
.dump
application/octet-sdiveam
.dv
video/x-dv
.dvi
application/x-dvi
.dwf
drawing/x-dwf (old)
.dwf
model/vnd.dwf
.dwg
application/acad
.dwg
image/vnd.dwg
.dwg
image/x-dwg
.dxf
application/dxf
.dxf
image/vnd.dwg
.dxf
image/x-dwg
.dxr
application/x-director
.el
text/x-script.elisp
.elc
application/x-bytecode.elisp (compiled
elisp)
.elc
application/x-elc
.env
application/x-envoy
.eps
application/postscript
.es
application/x-esrehber
.etx
text/x-setext
.evy
application/envoy
.evy
application/x-envoy
.exe
application/octet-sdiveam
.f
text/plain
.f
text/x-fordivan
.f77
text/x-fordivan
.f90
text/plain
.f90
text/x-fordivan
.fdf
application/vnd.fdf
.fif
application/fractals
.fif
image/fif
.fli
video/fli
.fli
video/x-fli
.flo
image/florian
.flx
text/vnd.fmi.flexstor
.fmf
video/x-atomic3d-feature
.for
text/plain
.for
text/x-fordivan
.fpx
image/vnd.fpx
.fpx
image/vnd.net-fpx
.frl
application/freeloader
.funk
audio/make
.g
text/plain
.g3
image/g3fax
.gif
image/gif
.gl
video/gl
.gl
video/x-gl
.gsd
audio/x-gsm
.gsm
audio/x-gsm
.gsp
application/x-gsp
.gss
application/x-gss
.gtar
application/x-gtar
.gz
application/x-compressed
.gz
application/x-gzip
.gzip
application/x-gzip
.gzip
multipart/x-gzip
.h
text/plain
.h
text/x-h
.hdf
application/x-hdf
.help
application/x-helpfile
.hgl
application/vnd.hp-hpgl
.hh
text/plain
.hh
text/x-h
.hlb
text/x-script
.hlp
application/hlp
.hlp
application/x-helpfile
.hlp
application/x-winhelp
.hpg
application/vnd.hp-hpgl
.hpgl
application/vnd.hp-hpgl
.hqx
application/binhex
.hqx
application/binhex4
.hqx
application/mac-binhex
.hqx
application/mac-binhex40
.hqx
application/x-binhex40
.hqx
application/x-mac-binhex40
.hta
application/hta
.htc
text/x-component
.htm
text/html
.html
text/html
.htmls
text/html
.htt
text/webviewhtml
.htx
text/html
.ice
x-conference/x-cooltalk
.ico
image/x-icon
.idc
text/plain
.ief
image/ief
.iefs
image/ief
.iges
application/iges
.iges
model/iges
.igs
application/iges
.igs
model/iges
.ima
application/x-ima
.imap
application/x-httpd-imap
.inf
application/inf
.ins
application/x-internett-signup
.ip
application/x-ip2
.isu
video/x-isvideo
.it
audio/it
.iv
application/x-inventor
.ivr
i-world/i-vrml
.ivy
application/x-livescreen
.jam
audio/x-jam
.jav
text/plain
.jav
text/x-java-source
.java
text/plain
.java
text/x-java-source
.jcm
application/x-java-commerce
.jfif
image/jpeg
.jfif
image/pjpeg
.jfif-tbnl
image/jpeg
.jpe
image/jpeg
.jpe
image/pjpeg
.jpeg
image/jpeg
.jpeg
image/pjpeg
.jpg
image/jpeg
.jpg
image/pjpeg
.jps
image/x-jps
.js
application/x-javascript
.jut
image/jutvision
.kar
audio/midi
.kar
music/x-karaoke
.ksh
application/x-ksh
.ksh
text/x-script.ksh
.la
audio/nspaudio
.la
audio/x-nspaudio
.lam
audio/x-liveaudio
.latex
application/x-latex
.lha
application/lha
.lha
application/octet-sdiveam
.lha
application/x-lha
.lhx
application/octet-sdiveam
.list
text/plain
.lma
audio/nspaudio
.lma
audio/x-nspaudio
.log
text/plain
.lsp
application/x-lisp
.lsp
text/x-script.lisp
.lst
text/plain
.lsx
text/x-la-asf
.ltx
application/x-latex
.lzh
application/octet-sdiveam
.lzh
application/x-lzh
.lzx
application/lzx
.lzx
application/octet-sdiveam
.lzx
application/x-lzx
.m
text/plain
.m
text/x-m
.m1v
video/mpeg
.m2a
audio/mpeg
.m2v
video/mpeg
.m3u
audio/x-mpequrl
.man
application/x-divoff-man
.map
application/x-navimap
.mar
text/plain
.mbd
application/mbedlet
.mc$
application/x-magic-cap-package-1.0
.mcd
application/mcad
.mcd
application/x-mathcad
.mcf
image/vasa
.mcf
text/mcf
.mcp
application/netmc
.me
application/x-divoff-me
.mht
message/rfc822
.mhtml
message/rfc822
.mid
application/x-midi
.mid
audio/midi
.mid
audio/x-mid
.mid
audio/x-midi
.mid
music/crescendo
.mid
x-music/x-midi
.midi
application/x-midi
.midi
audio/midi
.midi
audio/x-mid
.midi
audio/x-midi
.midi
music/crescendo
.midi
x-music/x-midi
.mif
application/x-frame
.mif
application/x-mif
.mime
message/rfc822
.mime
www/mime
.mjf
audio/x-vnd.audioexplosion.mjuicemediafile
.mjpg
video/x-motion-jpeg
.mm
application/base64
.mm
application/x-meme
.mme
application/base64
.mod
audio/mod
.mod
audio/x-mod
.moov
video/quicktime
.mov
video/quicktime
.movie
video/x-sgi-movie
.mp2
audio/mpeg
.mp2
audio/x-mpeg
.mp2
video/mpeg
.mp2
video/x-mpeg
.mp2
video/x-mpeq2a
.mp3
audio/mpeg3
.mp3
audio/x-mpeg-3
.mp3
video/mpeg
.mp3
video/x-mpeg
.mpa
audio/mpeg
.mpa
video/mpeg
.mpc
application/x-project
.mpe
video/mpeg
.mpeg
video/mpeg
.mpg
audio/mpeg
.mpg
video/mpeg
.mpga
audio/mpeg
.mpp
application/vnd.ms-project
.mpt
application/x-project
.mpv
application/x-project
.mpx
application/x-project
.mrc
application/marc
.ms
application/x-divoff-ms
.mv
video/x-sgi-movie
.my
audio/make
.mzz
application/x-vnd.audioexplosion.mzz
.nap
image/naplps
.naplps
image/naplps
.nc
application/x-netcdf
.ncm
application/vnd.nokia.configuration-message
.nif
image/x-niff
.niff
image/x-niff
.nix
application/x-mix-divansfer
.nsc
application/x-conference
.nvd
application/x-navidoc
.o
application/octet-sdiveam
.oda
application/oda
.omc
application/x-omc
.omcd
application/x-omcdatamaker
.omcr
application/x-omcregerator
.p
text/x-pascal
.p10
application/pkcs10
.p10
application/x-pkcs10
.p12
application/pkcs-12
.p12
application/x-pkcs12
.p7a
application/x-pkcs7-signature
.p7c
application/pkcs7-mime
.p7c
application/x-pkcs7-mime
.p7m
application/pkcs7-mime
.p7m
application/x-pkcs7-mime
.p7r
application/x-pkcs7-cerdiveqresp
.p7s
application/pkcs7-signature
.part
application/pro_eng
.pas
text/pascal
.pbm
image/x-portable-bitmap
.pcl
application/vnd.hp-pcl
.pcl
application/x-pcl
.pct
image/x-pict
.pcx
image/x-pcx
.pdb
chemical/x-pdb
.pdf
application/pdf
.pfunk
audio/make
.pfunk
audio/make.my.funk
.pgm
image/x-portable-graymap
.pgm
image/x-portable-greymap
.pic
image/pict
.pict
image/pict
.pkg
application/x-newton-compatible-pkg
.pko
application/vnd.ms-pki.pko
.pl
text/plain
.pl
text/x-script.perl
.plx
application/x-pixclscript
.pm
image/x-xpixmap
.pm
text/x-script.perl-module
.pm4
application/x-pagemaker
.pm5
application/x-pagemaker
.png
image/png
.pnm
application/x-portable-anymap
.pnm
image/x-portable-anymap
.pot
application/mspowerpoint
.pot
application/vnd.ms-powerpoint
.pov
model/x-pov
.ppa
application/vnd.ms-powerpoint
.ppm
image/x-portable-pixmap
.pps
application/mspowerpoint
.pps
application/vnd.ms-powerpoint
.ppt
application/mspowerpoint
.ppt
application/powerpoint
.ppt
application/vnd.ms-powerpoint
.ppt
application/x-mspowerpoint
.ppz
application/mspowerpoint
.pre
application/x-freelance
.prt
application/pro_eng
.ps
application/postscript
.psd
application/octet-sdiveam
.pvu
paleovu/x-pv
.pwz
application/vnd.ms-powerpoint
.py
text/x-script.phyton
.pyc
applicaiton/x-bytecode.python
.qcp
audio/vnd.qcelp
.qd3
x-world/x-3dmf
.qd3d
x-world/x-3dmf
.qif
image/x-quicktime
.qt
video/quicktime
.qtc
video/x-qtc
.qti
image/x-quicktime
.qtif
image/x-quicktime
.ra
audio/x-pn-realaudio
.ra
audio/x-pn-realaudio-plugin
.ra
audio/x-realaudio
.ram
audio/x-pn-realaudio
.ras
application/x-cmu-raster
.ras
image/cmu-raster
.ras
image/x-cmu-raster
.rast
image/cmu-raster
.rexx
text/x-script.rexx
.rf
image/vnd.rn-realflash
.rgb
image/x-rgb
.rm
application/vnd.rn-realmedia
.rm
audio/x-pn-realaudio
.rmi
audio/mid
.rmm
audio/x-pn-realaudio
.rmp
audio/x-pn-realaudio
.rmp
audio/x-pn-realaudio-plugin
.rng
application/ringing-tones
.rng
application/vnd.nokia.ringing-tone
.rnx
application/vnd.rn-realplayer
.roff
application/x-divoff
.rp
image/vnd.rn-realpix
.rpm
audio/x-pn-realaudio-plugin
.rt
text/richtext
.rt
text/vnd.rn-realtext
.rtf
application/rtf
.rtf
application/x-rtf
.rtf
text/richtext
.rtx
application/rtf
.rtx
text/richtext
.rv
video/vnd.rn-realvideo
.s
text/x-asm
.s3m
audio/s3m
.saveme
application/octet-sdiveam
.sbk
application/x-tbook
.scm
application/x-lotusscreencam
.scm
text/x-script.guile
.scm
text/x-script.scheme
.scm
video/x-scm
.sdml
text/plain
.sdp
application/sdp
.sdp
application/x-sdp
.sdr
application/sounder
.sea
application/sea
.sea
application/x-sea
.set
application/set
.sgm
text/sgml
.sgm
text/x-sgml
.sgml
text/sgml
.sgml
text/x-sgml
.sh
application/x-bsh
.sh
application/x-sh
.sh
application/x-shar
.sh
text/x-script.sh
.shar
application/x-bsh
.shar
application/x-shar
.shtml
text/html
.shtml
text/x-server-parsed-html
.sid
audio/x-psid
.sit
application/x-sit
.sit
application/x-stuffit
.skd
application/x-koan
.skm
application/x-koan
.skp
application/x-koan
.skt
application/x-koan
.sl
application/x-seelogo
.smi
application/smil
.smil
application/smil
.snd
audio/basic
.snd
audio/x-adpcm
.sol
application/solids
.spc
application/x-pkcs7-certificates
.spc
text/x-speech
.spl
application/futuresplash
.spr
application/x-sprite
.sprite
application/x-sprite
.src
application/x-wais-source
.ssi
text/x-server-parsed-html
.ssm
application/sdiveamingmedia
.sst
application/vnd.ms-pki.certstore
.step
application/step
.stl
application/sla
.stl
application/vnd.ms-pki.stl
.stl
application/x-navistyle
.stp
application/step
.sv4cpio
application/x-sv4cpio
.sv4crc
application/x-sv4crc
.svf
image/vnd.dwg
.svf
image/x-dwg
.svr
application/x-world
.svr
x-world/x-svr
.swf
application/x-shockwave-flash
.t
application/x-divoff
.talk
text/x-speech
.tar
application/x-tar
.tbk
application/toolbook
.tbk
application/x-tbook
.tcl
application/x-tcl
.tcl
text/x-script.tcl
.tcsh
text/x-script.tcsh
.tex
application/x-tex
.texi
application/x-texinfo
.texinfo
application/x-texinfo
.text
application/plain
.text
text/plain
.tgz
application/gnutar
.tgz
application/x-compressed
.tif
image/tiff
.tif
image/x-tiff
.tiff
image/tiff
.tiff
image/x-tiff
.div
application/x-divoff
.tsi
audio/tsp-audio
.tsp
application/dsptype
.tsp
audio/tsplayer
.tsv
text/tab-separated-values
.turbot
image/florian
.txt
text/plain
.uil
text/x-uil
.uni
text/uri-list
.unis
text/uri-list
.unv
application/i-deas
.uri
text/uri-list
.uris
text/uri-list
.ustar
application/x-ustar
.ustar
multipart/x-ustar
.uu
application/octet-sdiveam
.uu
text/x-uuencode
.uue
text/x-uuencode
.vcd
application/x-cdlink
.vcs
text/x-vcalendar
.vda
application/vda
.vdo
video/vdo
.vew
application/groupwise
.viv
video/vivo
.viv
video/vnd.vivo
.vivo
video/vivo
.vivo
video/vnd.vivo
.vmd
application/vocaltec-media-desc
.vmf
application/vocaltec-media-file
.voc
audio/voc
.voc
audio/x-voc
.vos
video/vosaic
.vox
audio/voxware
.vqe
audio/x-twinvq-plugin
.vqf
audio/x-twinvq
.vql
audio/x-twinvq-plugin
.vrml
application/x-vrml
.vrml
model/vrml
.vrml
x-world/x-vrml
.vrt
x-world/x-vrt
.vsd
application/x-visio
.vst
application/x-visio
.vsw
application/x-visio
.w60
application/wordperfect6.0
.w61
application/wordperfect6.1
.w6w
application/msword
.wav
audio/wav
.wav
audio/x-wav
.wb1
application/x-qpro
.wbmp
image/vnd.wap.wbmp
.web
application/vnd.xara
.wiz
application/msword
.wk1
application/x-123
.wmf
windows/metafile
.wml
text/vnd.wap.wml
.wmlc
application/vnd.wap.wmlc
.wmls
text/vnd.wap.wmlscript
.wmlsc
application/vnd.wap.wmlscriptc
.word
application/msword
.wp
application/wordperfect
.wp5
application/wordperfect
.wp5
application/wordperfect6.0
.wp6
application/wordperfect
.wpd
application/wordperfect
.wpd
application/x-wpwin
.wq1
application/x-lotus
.wri
application/mswrite
.wri
application/x-wri
.wrl
application/x-world
.wrl
model/vrml
.wrl
x-world/x-vrml
.wrz
model/vrml
.wrz
x-world/x-vrml
.wsc
text/scriplet
.wsrc
application/x-wais-source
.wtk
application/x-wintalk
.xbm
image/x-xbitmap
.xbm
image/x-xbm
.xbm
image/xbm
.xdr
video/x-amt-demorun
.xgz
xgl/drawing
.xif
image/vnd.xiff
.xl
application/excel
.xla
application/excel
.xla
application/x-excel
.xla
application/x-msexcel
.xlb
application/excel
.xlb
application/vnd.ms-excel
.xlb
application/x-excel
.xlc
application/excel
.xlc
application/vnd.ms-excel
.xlc
application/x-excel
.xld
application/excel
.xld
application/x-excel
.xlk
application/excel
.xlk
application/x-excel
.xll
application/excel
.xll
application/vnd.ms-excel
.xll
application/x-excel
.xlm
application/excel
.xlm
application/vnd.ms-excel
.xlm
application/x-excel
.xls
application/excel
.xls
application/vnd.ms-excel
.xls
application/x-excel
.xls
application/x-msexcel
.xlt
application/excel
.xlt
application/x-excel
.xlv
application/excel
.xlv
application/x-excel
.xlw
application/excel
.xlw
application/vnd.ms-excel
.xlw
application/x-excel
.xlw
application/x-msexcel
.xm
audio/xm
.xml
application/xml
.xml
text/xml
.xmz
xgl/movie
.xpix
application/x-vnd.ls-xpix
.xpm
image/x-xpixmap
.xpm
image/xpm
.x-png
image/png
.xsr
video/x-amt-showrun
.xwd
image/x-xwd
.xwd
image/x-xwindowdump
.xyz
chemical/x-pdb
.z
application/x-compress
.z
application/x-compressed
.zip
application/x-compressed
.zip
application/x-zip-compressed
.zip
application/zip
.zip
multipart/x-zip
.zoo
application/octet-sdiveam
.zsh
text/x-script.zsh

1 комментарий:

Dark Blogger комментирует...

Нормальные герои всегда идут в обход? Обычные люди давно с успехом используют dropbox.com->public