<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html
  PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<link rel="stylesheet" type="text/css" href="../../com.ibm.help.doc/swg_info_common.css" />
<title>Converting link structure</title>
<script language="JavaScript">
    function popup_window( url, id, width, height )
    {
      popup = window.open( url, id, 'toolbar=no,scrollbars=no,location=no,statusbar=no,menubar=no,resizable=no,width=' + width + ',height=' + height + ',left=,top=' );
      popup.focus();
    }
</script><script language="JavaScript" src="help/liveHelp.js"></script></head>
<body id="twlnkcnvt"><a name="twlnkcnvt"><!-- --></a>

<h1 class="topictitle1">Converting link structure</h1>
<div><div class="skipspace"> <p>The link conversion utility allows you to convert the path structure

of all of the links in a selected resource. </p>
 <div class="p">For example, suppose you

want to change your relative links in an HTML file so that the links are relative

to the document root. By choosing the <b>Document root relative</b> conversion

option, links that were relative to the current directory, for example:<p> &lt;a href="c-dataimpt.html"&gt;Data Imports&lt;/a&gt;</p>
 would be changed so that they were relative to the document root, which

in this example is the project directory:<p>&lt;a href="/my_dynamic_project/guide/c-dataimpt.html"&gt;Data Imports&lt;/a&gt;</p>
</div>
<p>To

convert your the link structure, complete the following steps:.</p>
</div>
<ol><li><span>Right-click a resource (a project, folder, or file) from the <span class="uicontrol">Project

Navigator</span> view.</span></li>
<li><span>Select <span class="menucascade"><span class="uicontrol">Link Utilities</span> &gt; <span class="uicontrol">Convert

Links</span></span>; the Convert Links dialog opens.</span></li>
<li><span>Select one of the radio buttons to choose a link structure: <span class="uicontrol">Document

relative</span> or <span class="uicontrol">Document root relative</span>.</span></li>
<li><span>Click <span class="uicontrol">Convert</span></span></li>
</ol>
<div class="skipspace"><p>All of the links in the selected resource will be updated to reflect

the chosen path structure.</p>
</div>
</div>
<p>
		(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.
</p>
</body>
</html>