Почему анимация моего сайта не отображается на страницах github? (three.js )

javascript #html

#javascript #HTML

Вопрос:

Я создал веб-сайт portifolio и развернул его на страницах github. Проблема в том, что когда я запускаю страницу локально, она работает нормально, но когда я смотрю на ссылку на страницах github, она не показывает анимационный фон, который я сделал.

Это весь мой код проекта :

 import "./style.css"
import * as THREE from 'three';

// Setup

const scene = new THREE.Scene();

const camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);

const renderer = new THREE.WebGLRenderer({
  canvas: document.querySelector('#bg'),
});

renderer.setPixelRatio(window.devicePixelRatio);
renderer.setSize(window.innerWidth, window.innerHeight);
camera.position.setZ(30);
camera.position.setX(-3);

renderer.render(scene, camera);

// tetrahedro
const tetra = new THREE.TetrahedronGeometry(0.25, 24, 24);
const tetrahedro = new THREE.Mesh(tetra,new THREE.MeshStandardMaterial(0xffffff));
scene.add(tetrahedro);
// Lights

const pointLight = new THREE.PointLight(0xffffff);
pointLight.position.set(5, 5, 5);

const ambientLight = new THREE.AmbientLight(0xffffff);
scene.add(pointLight, ambientLight);

// Helpers

// const lightHelper = new THREE.PointLightHelper(pointLight)
// const gridHelper = new THREE.GridHelper(200, 50);
// scene.add(lightHelper, gridHelper)

// const controls = new OrbitControls(camera, renderer.domElement);

function addStar() {
  const geometry = new THREE.SphereGeometry(0.25, 24, 24);
  const material = new THREE.MeshStandardMaterial({ color: 0xffffff });
  const star = new THREE.Mesh(geometry, material);

  const [x, y, z] = Array(3)
    .fill()
    .map(() => THREE.MathUtils.randFloatSpread(100));

  star.position.set(x, y, z);
  scene.add(star);
}

Array(200).fill().forEach(addStar);

// Background

const blacktexture = new THREE.TextureLoader().load('black-screen.jpg');
scene.background = blacktexture;

// Avatar


// Moon

const moonTexture = new THREE.TextureLoader().load('moon.jpg');


const moon = new THREE.Mesh(
  new THREE.SphereGeometry(3, 32, 32),
  new THREE.MeshStandardMaterial({
    map: moonTexture
  })
);

scene.add(moon);

moon.position.z = 30;
moon.position.setX(-10);

tetrahedro.position.z =60;
tetrahedro.position.setX(-15);

// Scroll Animation

function moveCamera() {
  const t = document.body.getBoundingClientRect().top;
  moon.rotation.x  = 0.05;
  moon.rotation.y  = 0.075;
  moon.rotation.z  = 0.05;

  tetrahedro.rotation.x  = 0.05;
  tetrahedro.rotation.y  = 0.075;
  tetrahedro.rotation.z  = 0.05;

  camera.position.z = t * -0.01;
  camera.position.x = t * -0.0005;
  camera.rotation.y = t * -0.0005;
}

document.body.onscroll = moveCamera;
moveCamera();

// Animation Loop

function animate() {
  requestAnimationFrame(animate);

  tetrahedro.rotation.x  =0.005;

  moon.rotation.x  = 0.005;

  //controls.update();

  renderer.render(scene, camera);
}

animate();
 
 @import url("https://use.typekit.net/jmk3xov.css");

canvas {
  position: fixed;
  top: 0;
  left: 0;
}


:root {
  --dark-bg: rgba(15, 15, 15, 0.95);
  --spacing: 350px;

  font-family: brandon-grotesque, sans-serif;
  font-weight: 400;
  font-style: normal;
}


main {
  width: 100vw;
  color: rgba(255, 255, 255, 0.925);
  z-index: 99;
  position: absolute;
  width: 100%;
  margin: 0px auto;
  padding: 120px 0px;
  
  display: grid;
  grid-template-columns: repeat(12, 1fr);
}

h1, h2, h3, blockquote {
  font-family: elevon, sans-serif;
  font-weight: 700;
  font-style: normal;
}

canvas {
  position: fixed;
  top: 0;
  left: 0;
}



  header {
    background: var(--dark-bg);
    grid-column: 2 / span 5;
    font-size: 2.5rem;
    padding: 2rem;
    margin-bottom: var(--spacing);
  }

  section {
    grid-column: 2 / 8;
    padding: 1rem;
    background: var(--dark-bg);
    font-size: 1.25rem;
    line-height: 1.5;
    margin-bottom: var(--spacing);
  }

  blockquote {
    margin: 0;
    padding: 0;
    grid-column: 2 / span 9;
    margin-bottom: var(--spacing);
    border-radius: 5;
  }

  blockquote p {
    color: rgb(255, 255, 255);
    background-color: rgb(43, 42, 42);
    font-size: 4rem;
    display: inline;
    line-height: 1;
    border-radius: 5;
  }

  .left {
    grid-column: 6 / 12;
 
 <!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <link rel="icon" type="image/svg xml" href="/favicon.svg" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Luis's Portifolio</title>
    <style>   
      /* Style the Sticky icons on web page */   
      .stickyicon-list {   
      position: absolute;   
      top: 400px;
      left: 10px;
      transform: translateY(-50%);             
      }          
      .stickyicon-list a {   
      display: block;   
      text-align: center;   
      padding:left;   
      transition: all 0.5s ease;   
      color: white;   
      font-size: 70px;

      }         
      /* HOver affect on sticky social media icons */   
      .stickyicon-list a:hover {   
      color: rgb(83, 76, 5);   
      width:10px;   
      }   
         
      /* Now we have to design each icon of social media */         
      .facebook {   
      background: #3b5998;   
      color: white;  
      }         
    
      .linkedin {   
      background: #0e76a8;   
      color: white;   
      }           
      .instagram {   
      background: #3f729b;   
      color: white;   
      }
      #porti{
        background-color: black;
        color:white;
      }
      #arduino{
        background-color: black;
        color:whitesmoke;
      }
      .button{
        background-color:rgb(56, 81, 82);
        color:white;
        padding-right: 10px;
        border-radius: 25;
      }
      </style>
  
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
  </head>
  <body>

    <canvas id="bg"></canvas>   

    <main>

      <header>
        <h1>Luis Filipe</h1>
        <p> 🙋🏻‍♂️ Welcome to my Portifolio! </p>
        <div class="stickyicon-list">  
          <a href="https://www.facebook.com/FelipeAraujods1/" target="_blank" class="facebook"
          >   
          <i class="fa fa-facebook"></i>   
      </a> 
        <a href="https://www.instagram.com/luisfaraujo1999/" target="_blank" class="instagram">   
            <i class="fa fa-instagram"></i>   
        </a>    
        <a href="https://www.linkedin.com/in/luis-filipe-de-araùjo-06337717b/" target="_blank" class="linkedin">   
              <i class="fa fa-linkedin"></i>   
        </a> 
         
        </div>
      </header>


      <blockquote id="jobyoulove">
        <p>Choose a job you love, and you will never have to work a day in your life.</p>
      </blockquote>

      <section>
        <h2>📜 About myself</h2>
        <p>
          I am a Brasilian Electrical engineering student who loves to code.🤓
        </p>

        <p>
          I got into programming as soon as I first met Python in a class at UFV.
          Ever since I have been working in some small and big projects including mainly machine learning 
          and data analyses. In the begining of 2021 though I was talked into a web developing course by a friend
          and I fell in love for the topic. Now I am starting my web developing career and will take any challenges
          you may have to offer me. 
        </p>

      </section>

      <section class="light">
        <h2>👩🏽‍🚀 Projects</h2>

        <p>
          <ul>
            <li>My first ever web developing project was the building and styling of this web page.</li>
             <a href="https://github.com/Doquey/Portifolio" target="_blank">

              <button type="button" class="button">
              <span class="button__icon"> <ion-icon name="logo-github"></ion-icon> </span>
            </button>
          </a>
            <li>A program that intagrates Python 🐍 and Arduino  in order to take data from a working glow motor.</li>
            <a href="https://github.com/Doquey/Arduino-Python" target="_blank">
              <button type="button" class="button">
              <span class="button__icon"><ion-icon name="logo-github"></ion-icon></span>
            </button>
          </a>
          </ul>
        </p>

        <h2>🏆 Accomplishments</h2>

        <p>
          <ul>
            <li> Passing grade of 85% on Python  for research hosted by harvardX</li>
          </ul>
        </p>

      </section>

      <blockquote>
        <p>The best way out is always through! <br>-Robert Frost</p>
      </blockquote>

      <section class="left">
        <h2>✈️ Work History</h2>

        <h3>diElétrica</h3>
        <p>
          As a freshman I worked in a project called "diElétrica" on my university. The main purpose of this project
          is to simulate the day to day of an Electrical engineering company. There I worked as a manager administrator.
          2018-2019
        </p>
        <h3>Skywards UfVoa</h3>
          In the begining of this year I applied to this another project within my university. The main goal
          of the project is to create a radiocontrolled airplane to go competing in the end of the year.
          I am still active in the project as head of the Eletronic and instrumentation sector.
        <p>
   
        </p>

      </section>

      <blockquote id="work">
        <p>Let's work together? <a href="https://www.linkedin.com/in/luis-filipe-de-araùjo-06337717b/" target="_blank" class="linkedin">   
          <i class="fa fa-linkedin"></i>  </a></p>
      </blockquote>


    </main>
    
    <script type="module" src="/main.js"></script>




  <script type="module" src="https://unpkg.com/ionicons@5.5.2/dist/ionicons/ionicons.esm.js"></script>
  <script type="module" src="https://unpkg.com/ionicons@5.5.2/dist/ionicons/ionicons.js"></script>






  </body>
</html>
 

Я перепробовал много вещей, таких как: вставка «/» в «main.js » сценарий, я также пытался развернуть свой код двумя различными способами :
1) создание вручную папки «dist» и перемещение туда всех изображений, js и html-кода
2) запуск команды npm run build для автоматического создания папки dist.

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

1. Есть ли какие-либо ошибки, появляющиеся в ваших инструментах разработчика? Можете ли вы поделиться ими здесь?

2. main.js: 1 Не удалось загрузить ресурс: сервер ответил со статусом 404 () favicon.svg:1 Не удалось загрузить ресурс: сервер ответил со статусом 404 ()

3. Они, но они продолжают меняться, и я использую тот же точный код, ха-ха

4. Не могли бы вы предоставить ссылку на сайт github pages?

5. doquey.github.io/lasttry Забыл вставить вместе с постом, мб

Ответ №1:

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

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

1. он показывает следующие ошибки: Не удалось загрузить ресурс: сервер ответил со статусом 404 () / lasttry/favicon.svg:1 Не удалось загрузить ресурс: сервер ответил со статусом 404 () / lasttry/favicon.svg: 1 Не удалось загрузить ресурс: сервер ответилсо статусом 404 ()

2. хорошо, так что проблема, вероятно, в Xscripting. Вам нужно загрузить эти ресурсы и использовать их из файла в вашем веб-проекте. вы можете ввести wget, а затем URL-адрес этих файлов в синтаксисе вашего терминала: wget lastry /favicon/whatEverUrlIs.file для загрузки зависимостей, надеюсь, это поможет

3. Кроме того, через некоторое время ввод URL-адреса, который вы использовали в своем html для вызова этих зависимостей, в строке браузера также загрузит файл, если вам еще не нравится терминал

4. Я обязательно попробую, сэр, спасибо за вашу помощь!!

5. Я решил эту проблему для значка vite, но теперь он говорит, что мой main.js файл отсутствует: Не удалось загрузить ресурс: сервер ответил со статусом 404 () …. main.js

Ответ №2:

это неправильно. <script type="module" src="/main.js"></script> попробуйте <script type="module" src="./main.js"></script>

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

1. Попробовал, но все та же проблема. Не удалось загрузить ресурс: сервер ответил со статусом 404 (), но теперь это doquey.github.io/Porttifolio/dist/main.js в конце этого сообщения.

2. проблемы, похоже, связаны с проблемой пути к каталогу, попробуйте загрузить URL-адрес вместо пути к файлу, т.Е. https:YourDomainName/main.js . структура каталогов на сервере отличается от структуры каталогов на вашем рабочем компьютере. Я не знаком со структурой страниц Github.

3. Совет, который вы дали, решил проблему url. На странице появилась еще одна вещь, хотя, ха-ха, теперь она гласит: style.css: 1 Не удалось загрузить скрипт модуля: ожидался сценарий модуля JavaScript, но сервер ответил MIME-типом «text / css». Строгая проверка типа MIME применяется для сценариев модулей в соответствии со спецификацией HTML.

4. Это связано с настройкой в конфигурации сервера, которую вам нужно будет задать на страницах GitHub, я не уверен. проверьте там форумы. если что-то из этого было полезным, пожалуйста, обратите внимание, что я пытаюсь получить репутацию

5. Я обращусь туда. Ваш совет по поводу URL-адреса, думаю, сработал очень хорошо, так что да, вы были очень полезны, как мне это отметить?