我正在打造一个新的 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/