本节讨论 URL 的构成、SharePoint 2010 构建 URL 的方式、URL 的编码和加长以及作为其他 URL 中的参数传递的方式。

SharePoint URL 的构成

SharePoint URL 的总长度等于文件夹或文件路径的长度,包括协议和服务器名称和文件夹或文件名称,以及作为 URL 的一部分包含在内的任何参数。公式如下:

· URL = 协议 + 服务器名称 + 文件夹或文件路径 + 文件夹或文件名 + 参数

例如,下面是 SharePoint  2010 中存储的文件的典型 URL 路径:

http://www.contoso.com/sites/marketing/documents/Shared%20Documents/Promotion/Some%20File.xlsx

其中,URL 路径的各个部分在下表中列出。

URL 部分

示例

协议

http://

服务器名称

www.contoso.com/

文件夹或文件路径

sites/marketing/documents/Shared%20Documents/Promotion/

文件名

Some%20File.xlsx

URL 编码

URL 编码可确保所有浏览器将正确传输 URL 字符串中的文本。有些浏览器可能会截断或破坏诸如问号 (?)、与号 (&)、左斜线 (/) 和空格之类的字符。SharePoint Foundation 2010 遵守 Internet 工程任务组 (IETF) RFC 3986(该链接可能指向英文页面)(http://go.microsoft.com/fwlink/?linkid=195564&clcid=0x804) 中定义的 URL 编码标准。

如果 SharePoint URL 中包含非标准 ASCII 字符(如高位 ASCII 或双字节 Unicode 字符),则在将它们传递到 Web 浏览器时,会将每个字符都 URL 编码为两个或更多个 ASCII 字符。因此,包含多个高位 ASCII 字符或双字节 Unicode 字符的 URL 可能会比原始未编码的 URL 长。下面的列表提供了倍增系数的示例:

· 高位 ASCII 字符,例如,(!、"、#、$、%、&、[Space]):倍增因数 = 3

· 双字节 Unicode 字符,例如日语、中文、朝鲜语、印地语:倍增系数 = 9

例如,将 URL 路径 http://www.contoso.com/sites/marketing/documents/Shared%20Documents/Promotion/Some%20File.xlsx 中的网站、库、文件夹和文件名称转换为日语时,生成的编码 URL 路径将与以下内容类似:

http://www.contoso.com/sites/%E3%83%9E%E3%83%BC%E3%82%B1%E3%83%86%E3%82%A3%E3%83%B3%E3%82%B0/%E6%96%87%E6%9B%B8/DocLib/%E3%83%97%E3%83%AD%E3%83%A2%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB.xlsx。此路径包含 224 个字符,而原始 URL 路径仅包含 94 个字符。

重要:

未编码的 URL 中不能使用以下字符:(~、#、%、&、*、{}、\、:、<>、/、+、|、“)。

URL 参数

URL 参数是作为要处理 URL 的一部分包含在内的数据。这些参数也会进行 URL 编码,并且可编码多次,从而生成非常长的 URL。

例如,如果您浏览到某个列表,则 URL 可能类似如下:http://www.contoso.com/sites/marketing/documents/Shared%20Documents/Forms/AllItemA.aspx?RootFolder=%2Fsites%2Fmarketing%2Fdocuments%2FShared%20Documents%2FPFPromoti&FolderCTID=0x012000F2A09653197F4F4F919923797C42ADEC&View={CD527605-9A7A-448D-9A35-67A33EF9F766}。此 URL 包含 260 个字符。

如果您随后单击“库”选项卡上的“创建视图”,则整个 URL 作为源参数包含在生成的 URL 中,并且编码后会长得多,例如,http://www.contoso.com/sites/marketing/documents/_layouts/ViewType.aspx?List=%7BED6E21E0%2DDF28%2D4165%2DBC3E%2D5371987CC2D2%7D&Source=http%3A%2F%2Fwww%2Econtoso%2Ecom%2Fsites%2Fmarketing%2Fdocuments%2FShared%2520Documents%2FForms%2FAllItems%2Easpx%3FRootFolder%3D%252Fsites%252Fmarketing%252Fdocuments%252FShared%2520Documents%252FPromotion%26FolderCTID%3D0x012000F2A09653197F4F4F919923797C42ADEC%26View%3D%7BCD527605%2D9A7A%2D448D%2D9A35%2D67A33EF9F766%7D。此 URL 包含 457 个字符。

重要:

如果要传递到 Internet Explorer 的 URL 总长度超过 1950 个字节,则 SharePoint Foundation 2010 会截断该 URL 源参数。源参数是对以前访问的页面的引用。截断源参数的结果是用户将返回默认位置,而不是源参数中指定的位置。

不会截断其他参数(如排序顺序、根文件夹参数和视图)。

URL 路径长度限制

本节讨论 SharePoint Foundation 2010 和 Internet Explorer 中的不同 URL 长度限制,以及如何规划 URL 路径长度。

SharePoint URL 路径长度限制

本节中的限制适用于 SharePoint Foundation 2010 中的文件夹或文件的 URL 路径的总长度,但不适用于任意参数的长度。此外,这些限制仅适用于未编码的 URL,而不是编码的 URL。SharePoint Foundation 2010 中的编码 URL 没有限制。这些限制包括:

· 260 Unicode (UTF-16) 代码单元 – 完整文件路径中的字符,不包括域/服务器名称。

· 256 Unicode (UTF-16) 代码单元 – 完整文件夹路径中的字符,不包括文件名和域/服务器名称。

· 128 Unicode (UTF-16) 代码单元 - 路径组件中的字符,即文件或文件夹名称。

· 260 Unicode (UTF-16) 代码单元 – 完整路径中的字符,包括用于 Office 客户端的域/服务器名称。

· 256 Unicode (UTF-16) 代码单元 – 完整路径中的字符,包括用于 Active X 控件的域/服务器名称。

有关详细信息,请参阅 Microsoft 知识库文章 894630 您收到“指定的文件或文件夹名称太长”错误消息(http://go.microsoft.com/fwlink/?linkid=195567&clcid=0x804)。

注意:

了解代码单元 - 大多数情形下,一个 UTF-16 字符等于一个 UTF-16 代码单元。但是,使用大于 U+10000 的 Unicode 码位的字符等于两个 UTF-16 代码单元。这些字符包括但不限于日语或中文代理项对字符。如果您的路径包括这些字符,则 URL 长度将超出 URL 长度限制(不超过 256 或 260 个字符)。

Internet Explorer URL 长度限制

Internet Explorer 还具有与 SharePoint Foundation 2010 中的限制不同的限制。尽管可使 SharePoint Foundation 2010 URL 路径短于限制长度,但还可能会由于添加参数或编码 URL 而遇到 Internet Explorer URL 长度限制。必须使用最严格的限制作为规划 URL 长度的指南。

Internet Explorer 7 和 Internet Explorer 8 均具有以下限制:URL 最大长度为 2,083 个 UTF-8 字符,路径最大长度为 2,048 个 UTF-8 字符。但是,在 Internet Explorer 7 中,在某些特定情况下,有效的 URL 长度限制为 1024 个 UTF-8 字符,而不是 2083 个 UTF-8 字符。有关 Internet Explorer 中的 URL 长度限制的详细信息,请参阅 Microsoft 知识库文章 208427 Internet Explorer 中的 URL 最大长度为 2,083 个字符 (http://go.microsoft.com/fwlink/?linkid=195568&clcid=0x804)。

重要:

除非环境中的所有浏览器均为 Internet Explorer 8,否则请遵守 1024 个 UTF-8 字符的有效限制。

解决 URL 长度问题

可通过多种方法解决或缓解 SharePoint Foundation 2010 环境中的 URL 长度问题。下面的列表提供了建议:

· 将所有最终用户浏览器升级为 Internet Explorer 8,该版本具有更长的 URL 长度限制。

· 使用更短的网站、文件夹和文档名称,控制网站和文件夹结构的深度,从而缩短 URL 的长度。

· 如果可能或情况允许,请为网站、文件夹和文档使用 ASCII 名称。这样可避免 URL 由于编码而变长的情形。

· 若要降低 SharePoint Foundation 2010 最终用户由于 URL 长度限制而遇到问题的风险,建议在部署中应用以下有效限制:

o 256 Unicode (UTF-16) 代码单元 - 有效的文件路径长度限制,包括域/服务器名称

o 128 Unicode (UTF-16) 代码单元 - 路径部分长度限制

URL 路径长度限制(错误:指定的文件或文件夹名称太长)的更多相关文章

  1. Mac下关于——你不能拷贝项目“”,因为它的名称太长或包括的字符在目的宗卷上无效。文件的删除

    内容是google的,测试有效,因为用revel打包的东西删除以后有这个循环bug Mac下关于——你不能拷贝项目“”,因为它的名称太长或包括的字符在目的宗卷上无效.文件的删除 关于这个问题我找到的一 ...

  2. mysql 1071错误,原因是Mysql的字段设置的太长了

    mysql 1071错误,原因是Mysql的字段设置的太长了 mysql 1071错误经过查询才知道,是Mysql的字段设置的太长了,于是我把这两个字段的长度改了一下就好了. 建立索引时,数据库计算k ...

  3. 无法删除 NTFS 盘上的文件或文件夹(对Windows文件的各种情况有比较详细的描述)

    简介 本文介绍您可能无法删除 NTFS 文件系统卷上的文件或文件夹的原因,以及如何分析造成此问题的不同原因从而解决此问题. 更多信息 注意:在内部,NTFS 将文件夹作为特殊类型的文件进行处理.因此, ...

  4. 爪哇国新游记之二十八----从url指定的地址下载文件到本地

    package download; import java.io.File; import java.io.FileOutputStream; import java.io.InputStream; ...

  5. 初识TypeScript:查找指定路径下的文件按类型生成json

    如果开发过node.js的话应该对js(javascript)非常熟悉,TypeScript(以下简称ts)是js的超集. 下面是ts的官网: https://www.tslang.cn/ 1.环境配 ...

  6. 【转】Git如何Check Out出指定文件或者文件夹

    [转]Git如何Check Out出指定文件或者文件夹http://www.handaoliang.com/a/20140506/195406.html 在进行项目开发的时候,有时候会有这样的需求那就 ...

  7. Java递归输出指定路径下所有文件及文件夹

    package a.ab; import java.io.File; import java.io.IOException; public class AE { public static void ...

  8. Git如何Check Out出指定文件或者文件夹

    原文  http://www.handaoliang.com/a/20140506/195406.html 在进行项目开发的时候,有时候会有这样的需求那就是:我们只希望从Git仓库里取指定的文件或者文 ...

  9. 在 Visual Studio 调试器中指定符号 (.pdb) 和源文件

    查找并指定符号文件和源文件:指定符号加载行为.使用符号和源服务器上:加载符号自动或在要求.   内容 查找符号 (.pdb) 文件 查找源文件   查找符号 (.pdb) 文件 说明 在之前的 Vis ...

随机推荐

  1. Android中include标签的使用

    在Android的开发中,我们知道布局文件可以让我们很方便的对各个UI控件进行位置安排跟属性设置,而在程序中可以直接取得控件并赋予对应操作功能.但是,如果是一个复杂的界面设计,我们把所有布局都放在一个 ...

  2. Tomcat源码分析

    前言: 本文是我阅读了TOMCAT源码后的一些心得. 主要是讲解TOMCAT的系统框架, 以及启动流程.若有错漏之处,敬请批评指教! 建议: 毕竟TOMCAT的框架还是比较复杂的, 单是从文字上理解, ...

  3. Android之Activity的生命周期

    PS:写一发关于Activity的生命周期,也算是面试的重点内容. 学习内容: 1.Activity的生命周期 2.面对多种情况的时候Activity的生命周期 3.onSaveInstanceSta ...

  4. c#实现分组服务器,单一无重复生成ID

    class Program { static void Main(string[] args) { List<Thread> threads = new List<Thread> ...

  5. 记录一个mysql连接慢的问题

    问题现象是这样的: 我在一台机器上(61.183.23.23)启动了一个mysql,然后开通一个账号可以从127.0.0.1或者从61.183.23.23访问.但是遇到一个问题就是使用下面两个命令行访 ...

  6. ES6笔记(6)-- Set、Map结构和Iterator迭代器

    系列文章 -- ES6笔记系列 搞ES6的人也是够无聊,把JS弄得越来越像Java.C++,连Iterator迭代器.Set集合.Map结构都出来了,不知道说什么好... 一.简单使用 1. iter ...

  7. 动画库Animate.css

    笔记分享: 用法:到官网(http://daneden.github.io/animate.css/),下载animate.min.css文件.点击这里 1.首先引入animate css文件 < ...

  8. 浅谈图片蒙版效果-webkit-mask

    会用PS的童鞋一定知道“蒙版”的概念,它可以在图片上实现一定的遮罩效果,当然这里我们不介绍ps里的蒙版,而是介绍利用CSS3的新属性-webkit-mask来实现网页中的图片遮罩效果. 大家对-web ...

  9. HTML的checkbox和radio的美化

    checkbox和radio的美化 checkbox: <style type="text/css"> input[type="checkbox"] ...

  10. HoverTree系统源码介绍

    HoverTree是一个开源asp.net系统.系统的效果请到:http://hovertree.com体验. 源码描述:一.源码特点采用典型的三层架构进行开发,实现了留言板的功能,后台管理,留言审核 ...