本节讨论 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. ZooKeeper官方文档翻译——ZooKeeper Overview 3.4.6

    ZooKeeper ZooKeeper: A Distributed Coordination Service for Distributed Applications (针对分布式应用的分布式调度服 ...

  2. [OpenCV] Samples 09: image

    根据需求,转化为不同的颜色格式,split后处理各自通道. plImage <==> Mat 格式转换 Mat --> plImage 简单写法: IplImage copy = m ...

  3. Javascript定时器(三)——setTimeout(func, 0)

    setTimeout(func, 0)可以使用在很多地方,拆分循环.模拟事件捕获.页面渲染等 一.setTimeout中的delay参数为0,并不是指马上执行 <script type=&quo ...

  4. [转载]AxureRP常用快捷键

    习惯用Axure快捷键会让你做原型的时候更得心应手.Axure中文网总结了常用的一些快捷键分享给大家 . Axure RP Pro 6.5快捷键大全,如有疏漏,欢迎补充.   基本快捷键:   打开: ...

  5. Testing - 测试基础 - 分类

    对软件内部结构的深入程度 黑盒测试:又叫功能测试.数据驱动测试或基于需求规格说明书的功能测试. 白盒测试:又称结构测试.逻辑驱动测试或基于程序代码内部构成的测试. 灰盒测试:包含性能测试.自动化测试. ...

  6. 2.Visual FoxPro内存变量显示和清除命令

    一.内存变量的显示相关命令:   1. LIST MEMORY[LIKE<通配符>][TO PRINTER |TO FILE<文件名>] 2. DISPLAY MEMORY[L ...

  7. oracle数据库字符集US7ASCII,在java中处理中文问题

    原来项目中oracle数据库一直是US7ASCII,我新项目对接的时候,查询以及插入中文,出现乱码问题. 暂时未能解决此问题,最终决定每次转码: 查询的时候: List<Record> l ...

  8. Android Studio快捷键每日一练(5)

    原文地址:http://www.developerphil.com/android-studio-tips-of-the-day-roundup-5/ 42.Enter键和Tab键补全 快捷键:Ent ...

  9. Dapper学习 - Dapper.Rainbow(三) - Read

    前面已经介绍了新增/修改/删除了, 接下来介绍一下Rainbow的Read方法. 一.Read -- Rainbow原生 1. 先看测试代码 var conStr = ConfigurationMan ...

  10. Web API应用架构设计分析(2)

    在上篇随笔<Web API应用架构设计分析(1)>,我对Web API的各种应用架构进行了概括性的分析和设计,Web API 是一种应用接口框架,它能够构建HTTP服务以支撑更广泛的客户端 ...