2017-02-18 27 views
0

我有以下代码。我想打印出该目录中的文件名并附加一个href标签。下面的代码工作,但只有我的node.js应用程序正在监听的端口号仍然存在。我怎么能删除(所以我的hrefs实际上会工作?)。与文档对象的东西,如截断网址?Node.js EJS模板:我如何从href中删除端口号?

<h1><%= title %></h1> 
<p>Welcome to 
    <%=t itle %> 
</p> 
<ul> 
    <% for(var i=0; i<fs.readdirSync('./Week4/').length; i++) {%> 
     <li> 
      <a href="<%= fs.readdirSync('./Week4/')[i] %>"> 
       <%=f s.readdirSync('./Week4/')[i] %> 
      </a> 
     </li> 
     <% } %> 
</ul> 
+0

对不起,但我不明白你的问题。请你提供一个当前产出的例子和预期的例子吗? – Telokis

+0

当前输出说如果我点击列表项之一:域:8080/week4/listitem。我想删除:'8080',因为这是文件未加载的原因。 – nincs12

回答

0

从阅读您的评论,似乎你的问题不在你认为的地方。 的:8080你看,因为你指定一个href是相对于当前URL自动写入:如果当前的URL是localhost:8080/Week4/index.html,将相对URL

itemlist实际上将您重定向到localhost:8080/Week4/itemlist

如果这不是您打算工作的方式,您必须指定绝对URL。例如,使用//localhost:80/Week4/itemlist会将您重定向到另一个服务器(或同一服务器上的另一个侦听器)。


我不完全知道你在努力达成什么,但对我而言,你所期望的行为听起来不太好。链接不应该重定向到同一服务器上的其他端口,除非您正在做一些非常具体的事情。

如果你可以告诉我们你是什么真的试图实现,我们可以帮助你更好。

+0

我想要href每个列表项,所以它直接将我带到我点击的特定文件。 – nincs12

+0

对不起,但这不够精确。你有路线服务这些文件吗?你为什么期望看到他们没有港口? – Telokis

+0

奇怪的是,如果我导航到端口8080上的文件(即我的快递JS正在使用),我得到一个404:错误:未找到 at /var/www/richarddemeny/myapp/app.js:30:13 at在trim_prefix(/ var/www/richarddemeny/myapp/node_modules/express /)上使用Layer.handle [作为handle_request](/var/www/richarddemeny/myapp/node_modules/express/lib/router/layer.js:95:5) 。 lib/router/index.js:312:13) - 还有几行类似的错误消息。如果我在没有端口的情况下导航到该文件,则该文件没有问题。 – nincs12