3D-модель не отображается на веб-странице ASP.NET Core MVC с подключаемым модулем Javascript Stl Viewer

У меня это работало с их удаленным размещением, но это было довольно медленно. Я потратил много часов, пытаясь заставить JS-плагин работать.

Я не могу заставить 3D-модель отображаться внутри div, как показано в их руководстве здесь: https://www.viewstl.com/plugin/#usage .

У меня есть контейнер div на моей странице, например:

<div id="stl_cont" style="various color and size stuff">Rendering 3D... Please Wait</div>

и у меня есть все файлы js в папке js вне wwwroot, так что у меня есть это:

<script src="~/js/stl_viewer.min.js"></script>

(Если я просматриваю исходный код, я могу щелкнуть ссылку на min.js, и он отобразится в браузере, поэтому я предполагаю, что этот путь также действителен)

У меня есть следующий код:

<script>
    var stl_viewer = new StlViewer(document.getElementById("stl_cont"),{models:[{ id: 0, filename: "https://www.exploredungeons.com/3dmodels/012/filename.stl", load_three_files: "js" }]});
</script>

Я могу посмотреть в исходном коде и щелкнуть ссылку на файл STL, и он загрузится, поэтому путь кажется правильным.

Я использую ASP.NET CORE MVC, если это поможет. Когда я запускал и указывал на удаленную службу, все работало нормально. Я не могу понять, чего не хватает.


person Chris G. Williams    schedule 10.07.2019    source источник


Ответы (2)


Нашел ответ.

Средство просмотра Stl Viewer ожидает, что все файлы js будут находиться в той же папке, что и страница, которая его использует, что для приложения MVC нецелесообразно, поэтому они также предоставляют параметр LOAD_THREE_FILES, который вы можете использовать для указания местоположения файлов js. потребности.

person Chris G. Williams    schedule 11.07.2019

Это работает, когда я удаляю все связанные файлы js из папки wwwroot/js в папку wwwroot напрямую. И меняю на использование

<script src="/stl_viewer.min.js"></script>

Обновлять:

Все мои файлы сценариев и файл STL находятся непосредственно в папке wwwroot.

Вид:

<div id="stl_cont" style="width:500px;height:500px;margin:0 auto;"></div>
@section Scripts{
    <script src="/stl_viewer.min.js"></script>
    <script>
    var stl_viewer = new StlViewer(document.getElementById("stl_cont"), { models: [{ id: 0, filename: "Sheep_1.stl" }] });
</script>
}
person Ryan    schedule 11.07.2019
comment
Я пробовал помещать сценарии в папку js, папку lib и папку wwwroot (не одновременно). Если я просматриваю исходный код, я вижу путь и открываю файл js, поэтому я знаю, что он его видит. Я также проверил путь к файлу stl. До сих пор не работает. - person Chris G. Williams; 11.07.2019
comment
В вашем рабочем примере вы используете URL-адрес для указания на файл STL или просто относительный путь? - person Chris G. Williams; 11.07.2019
comment
Вы используете сайт ASP.NET Core MVC? Ваш ответ не дает мне многого для продолжения. - person Chris G. Williams; 11.07.2019
comment
Я рад, что вы решили это. В моей ситуации я использую ваш код и помещаю все файлы js в папку js под wwwroot, но я получаю сообщение об ошибке в браузере https://localhost:44395/three.min.js net::ERR_ABORTED 404, когда я перемещаю их из папки js, это работает. Я использую относительный путь к файлу STL. - person Ryan; 12.07.2019