Как запускать файлы JS в каталоге веб-сервера

#javascript

#javascript

Вопрос:

Я новичок в Javascript,

Когда у меня есть эти два файла в одном каталоге на рабочем столе, все работает нормально,

Но когда я помещаю их в каталог веб-сервера /var/www/html , это не работает

Я знаю, что JS — это клиентская часть, но если мы создаем веб-сайт, эти файлы .js будут находиться в некотором каталоге веб-сервера и должны работать, пока они там размещены

Я использую apache 2.4 в ubuntu 20.4

Javascript.js код :

     /*global document, console */

var mybtn = document.getElementById("mybtn");
var mydiv = document.getElementById("mydiv");
var myid = document.getElementById("myid");
mybtn.onclick = function(){
    console.log(myid.value);
    mydiv.innerHTML = myid.value;
}
  

.html-код:

 <html>
<head></head>

 <body>

<input type="text" id="myid">
<button id="mybtn">click</button>

<div id="mydiv"></div>
     
<script src="javascript.js">
     
     </script>

</body>
</html>
  

Комментарии:

1. укажите правильный путь к javascript.js если ваш файл js находится в /var / www / js, укажите путь, подобный этому src=»../js/javascript.js » предполагая, что ваш HTML-файл находится в / var / www / html

2. Когда клиент обращается к веб-сайту, сервер веб-сайта фактически отправляет клиенту файлы html и js, и они запускаются в браузере клиента. Конечно, вы можете запускать код js (например, node) и на сервере, но из добавленного вами примера кода похоже, что он должен выполняться на клиенте

3. @NaveenKashyap Оба файла находятся в одном каталоге (/var/www / html).

4. @OmriAttiya Итак, почему мой Apache не отправляет файлы в мой Chrome здесь ?

5. тогда попробуйте./javascript

Ответ №1:

Давайте предположим, что это ваш каталог public_html / var / www / html и для лучшей организации кода создайте каталог для файлов javascript как js. Вы можете сделать это для CSS, изображений и так далее. Итак, ваш общедоступный каталог становится таким

 public_html
    js
      myjscodehere.js // copy your javascript code to this file.
    css
    images
    index.html 
  

Что касается index.html . Задайте путь к каталогу для вашего файла javascript.

 <html>
<head></head>

 <body>

<input type="text" id="myid">
<button id="mybtn">click</button>

<div id="mydiv"></div>
     
<script type="text/javascript" src="/js/myjscodehere.js"></script> 

</body>
</html>
  

Ваши файлы javascript будут работать на стороне клиента после отправки запроса get на ваш веб-сервер с помощью Chrome, Mozilla и на

Разделение кода js дает вам много преимуществ, таких как кэширование ваших файлов js и лучшая организация, если вы создаете более крупный проект, обновление вашего кода будет проблемой, поэтому лучше поместить ваши файлы js в каталог, но это не означает, что вы не можете запускать код вашего скрипта javascript встроенным. Да, вы можете сделать это следующим образом.

 <html>
    <head></head>
    
     <body>
    
    <input type="text" id="myid">
    <button id="mybtn">click</button>
    
    <div id="mydiv"></div>
         
    <script type="text/javascript">

var mybtn = document.getElementById("mybtn");
var mydiv = document.getElementById("mydiv");
var myid = document.getElementById("myid");
mybtn.onclick = function(){
    console.log(myid.value);
    mydiv.innerHTML = myid.value;
}

    </script> 
    
    </body>
    </html>
  

И поскольку код javascript выполняется на стороне клиента. Вы можете запустить его на своем компьютере с Windows, используя веб-браузер, и вам не нужен веб-сервер. Цель отправки вашего файла js или всего проекта на веб-сервер заключается в том, чтобы ваши клиенты или люди, которые посещают ваш веб-сайт, использовали ваше онлайн-приложение на своих локальных компьютерах.

Комментарии:

1. Вау, это сработало, когда я разделил два файла (я поместил файл .js в каталог js), так что это не об «организации» не могли бы вы объяснить, почему мне пришлось разделять файлы, чтобы .js работал в каталоге Apache, в то время как когда они были на рабочем столе, они все равно работали