Вопрос

Я сделал этот сайт для моего друга, и я загрузил его на ведро Amazon S3 (http://ballard26.s3.amazonaws.com/index.html.) И когда я пойду на этот сайт, страница не загружается правильно, и я понятия не имею, почему. Есть идеи?

Например, stylesheet.css не загружается правильно. Если вы идете в http://ballard26.s3.amazonaws.com/stylesheet.csss., Он загружает файл вместо загрузки его как CSS.

Это было полезно?

Решение

Проверьте типы MIME (заголовок типа HTTP Content) на загруженных вами файлах. S3 не всегда устанавливает их правильно. Вам может потребоваться установить их на вызов API загрузки. Некоторые библиотеки загрузки сделают это для вас.

Если типы MIME не верны, когда файл загружен из браузера из S3, если тип MIME не установлен правильно, он не всегда будет правильно.

Другие советы

CSS файлы по умолчанию для типа MIME octet/binary. Отказ Чтобы исправить это, войдите в консоль управления AWS, перейдите в раздел Amazon S3 и найдите соответствующее ведро. Найдите файл CSS и выберите Свойства. Под метаданными установите ключ типа содержимого в значение: text/css

Если вы используете приложение Panic Transmit для Mac OS X, вы можете установить пользовательский заголовок загрузки для файлов CSS Content-Type: text/css Что применит правильный тип MIME каждый раз, когда вы загружаете файл, удалив необходимость вручную установить это в свою консоль каждый раз.

Больше информации об этом в Адаме Уилкосс Сообщение блога.

Я догадаю, что вы не указываете и не устанавливали файл MIME-типа файла правильно при загрузке файла. В результате он по умолчанию binary/octet-stream.

Когда вы загружаете свою страницу, ваш браузер предполагает, что указанный вами таблицы стилей не является файлом CSS, поскольку он подается с помощью типа Content, кроме text/css, И так не применяет стиль листа.

У меня была такая же проблема в IE из-за неправильного типа содержимого наших файлов CSS / JS.

Если вы используете Ruby и Gem AWS, используйте код это:

s3 = Aws::S3Interface.new($s3[:s3_access_key_id],$s3[:s3_secret_access_key],{:multi_thread => true});
s3.put($s3[:s3_bucket],s3_path,file[:tempfile].read,{'x-amz-acl' => 'public-read', 'content-type' => 'text/css' })

Обратите внимание на различный синтаксис для метаданных S3:

'content-type' => 'text/css'
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top