Как получить доступ к файлу JS за пределами общей папки? - PullRequest
1 голос
/ 20 апреля 2019

Я пытался зарегистрировать компонент vue в файле app.js из проекта laravel, но я просто не могу найти правильный путь для app.js, есть два файла с именами app.js.Вот моя файловая структура:

public
        css
        js
               app.js

resources
        js
              components
                     Articles.vue
                     ExampleComponent.Vue
              app.js
              bootstrap.js

Вот где я импортировал мой файл app.js в свой блейд-файл:

<body>
    <div id="app">
        <articles>

        </articles>
    </div>
    <script type="text/javascript" src="{{ assets('js/app.js') }}"></script>


</body>

Проблема в том, что я хочу получить доступ ко второму app.js файл, который находится в папке resources, но приведенный выше код продолжает давать мне первый файл app.js, который находится в папке public.

Я попытался дать ему абсолютный путь к файлу, используяэтот код URL::asset('resources/js/app.js')
Это дает мне URL, например localhost:8000/resources/js/app.js, который является правильным расположением файла, но каким-то образом эта ссылка ведет на страницу 404.Так есть ли другой способ получить доступ к файлу?

Спасибо

1 Ответ

1 голос
/ 20 апреля 2019

Во-первых

localhost:8000/something всегда относится к something в каталоге public. Таким образом, вы не можете ссылаться на ваш resource/js/app.js в своем блейд-файле как файл js.

1012 * Во-вторых *

На самом деле вам не нужно использовать файл resource/js/app.js в своем блейде. Если вы даже сделаете это, код не будет работать. Потому что коды в resources/js/app.js не скомпилированы. Вы должны скомпилировать их и использовать в блейд-файлах. Итак, где находится скомпилированный файл? На самом деле это файл public/js/app.js. Этот файл является скомпилированной версией вашего resource/js/app.js.

Проблема заключается в том, что каждый раз, когда вы изменяете файл js внутри resource, вам необходимо перекомпилировать коды js. Все эти коды будут объединены и будут скопированы в public/js/app.js.

Как скомпилировать?

Перед компиляцией js-кода необходимо убедиться, что вы правильно установили зависимости от внешнего интерфейса, введя команду npm install.

Тогда, если все зависимости установлены, вы можете скомпилировать код с помощью команды

npm run dev для компиляции уровня разработки

npm run production для уровня производства (минимизированный и защищенный) compile.

Если вы не хотите запускать команду npm run dev при каждом изменении файла, вы можете запустить команду npm run watch. Эта команда будет наблюдать, если какой-либо файл js изменился. В случае изменения он будет скомпилирован автоматически.

...