2017-02-18 54 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