2017-02-18 22 views
0

У меня есть код ниже. Я хотел бы распечатать имена файлов в этом каталоге и добавить тег href. Ниже приведен код, но только номер порта, который прослушивает приложение node.js, все еще существует. Как я могу удалить это (так что мои hrefs будут работать?). Что-то с объектом документа, как при усечении URL-адреса?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

Текущий вывод говорит, если я нажму на один из элементов списка: domain: 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: Ошибка: не найден по адресу /var/www/richarddemeny/myapp/app.js:30:13 at Layer.handle [as handle_request] (/var/www/richarddemeny/myapp/node_modules/express/lib/router/layer.js:95:5) at trim_prefix (/ var/www/richarddemeny/myapp/node_modules/express/lib/router/index.js: 312: 13) - с несколькими строками похожих сообщений об ошибках. Если я перейду к нему без порта, файл будет работать без проблем. – nincs12