css - Sharepoint 2010 + CSS3Pie 无法正常工作,因为关闭行为和指定的 url

标签 css sharepoint-2010 behavior

我正在打造一个新的 Sharepoint 2010 面向公众的网站。在这个网站中,我想在几个容器周围使用阴影和圆 Angular 。 我首先尝试自己做,但我的一位同事告诉我 CSS3Pie ( http://css3pie.com ),效果非常好。

我遇到的问题是指定 HTC 文件的路径。 目前我有这个:

#left_content_small
{
    width: 610px;
    padding: 20px;
    border: 1px solid #999;
    -webkit-border-radius: 10px;
    -moz-border-radius: 10px;
    border-radius: 10px;
    -moz-box-shadow: 10px 10px 5px #888;
    -webkit-box-shadow: 10px 10px 5px #888;
    box-shadow: 10px 10px 5px #888;
    behavior: url(/PIE.htc);
}

这在 IE 中无法正常工作。此外,使用

    behavior: url(Style Library/StyleSheets/PIE.htc);

也不行。此外,在字符串周围放置 "或 ' 也不起作用。 但是,像这样指定行为 URL:

behavior: url(_layouts/PIE.htc);

确实有效。现在可以正确呈现所有容器。

我可以将 htc 文件放在布局文件夹中,但我不想这样做,因为它会用自定义文件破坏默认的 Sharepoint 文件夹。

我检查了使用 Fiddler 加载的页面,我看到 PIE.htc 文件在所有情况下都返回 200 代码(这很好)。无论我将它放在布局、样式库还是站点的根目录中,每次它返回 200 时都没有关系。

CSS3Pie 存在一些已知问题:http://css3pie.com/documentation/known-issues/其中说明了有关相对 URL 等的内容。我以为我已经通过在 url 前面放置一个/- 字符来确定它。 还尝试了完整的域 url (http://testsite.local/PIE.htc),但这也无法正常工作。

关于如何将 htc 文件放置在 Sharepoint 2010 站点中而不是布局文件夹中的任何想法?

最佳答案

在使用 .htc 文件和 SharePoint 2010(以及 IE7 之后的任何 IE 版本)时,您必须处于许可文件模式或将“text/x-component”MIME 类型添加到 AllowedInlineDownloadedMimeTypes使用 PIE 列出每个 Web 应用程序。

宽容模式是最容易在网络应用程序上设置的,但如果您允许用户上传内容,也会让您面临潜在的攻击。 (这与 SharePoint 2010 中默认情况下无法在浏览器中打开 PDF 的原因相同)

如果不允许此 MIME 类型,则 IE 将下载 .htc,但它会拒绝执行文件中包含的任何行为(文件发送时带有“X-Download-Options:noopen” header )。

通过 PowerShell 将 mime 类型添加到 webapp 相对简单。

$webapp = Get-SPWebApplication <name or URL of web app>
$webapp.AllowedInlineDownloadedMimeTypes.Add("text/x-component")
$webapp.Update()

这是针对每个网络应用程序的设置,因此您需要对将使用 PIE 的每个网络应用程序进行更改。

进行此更改还可以让您将 PIE.htc 存储在文档库中。

-罗伯特

关于css - Sharepoint 2010 + CSS3Pie 无法正常工作,因为关闭行为和指定的 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4255930/

相关文章:

html - 将图像固定在 div 中

javascript - jQuery 菜单 - 如何添加鼠标事件?

html - 我的 CSS 文件没有正确链接到我的 HTML,或者 Jumbotron 不会更改文本颜色

css - HTML5 网站使用 CSS,背景和标题问题

c# - 如何将当前用户特定的主题应用到共享点网站

visual-studio-2010 - 将列表模板 STP 文件导入到 Visual Studio 2010

sharepoint-2010 - ItemUpdating 在事件接收器中的 ItemAdded 之后调用了两次

xaml - 无法解析元素上的名称

php - 使用saveAll时修改Behavior的beforeSave中的Model数据

java - Wicket:有状态页面中的无状态 AJAX 行为,无需序列化