【问题标题】:Javascript not working after server upload服务器上传后Javascript不起作用
【发布时间】:2017-12-25 04:27:25
【问题描述】:

正如标题所说,我刚刚建立了一个网站。在我的本地服务器上进行了测试,一切正常,没有任何错误。

但是,在将我的文件上传到 dreamhost 服务器后,网站会加载,但我的动画和交互性无法正常工作。我联系了客户服务,并被告知在我的 error.log 文件中它说找不到我所有 GSAP.js 文件所在的文件夹。但是看我的面板,所有文件都上传成功了。

为了确保不只是 Dreamhost 服务器,我决定尝试将站点上传到 github 服务器,但仍然是同样的事情。该站点和所有文件已成功上传,但 javascript 文件未运行或未定位。我不确切知道。并且在google开发者工具中查看控制台和网络后,没有任何错误,说明所有文件都上传成功,没有错误。

什么可能导致此问题?我迷路了。

这是引用所有 GSAP.js 和我的 index.js 文件的代码

<script src="Resources/js/index.js"></script>
<script src="Vendor/js/TweenMax.min.js"></script>
<script src="Vendor/js/Draggable.min.js"></script>
<script src="Vendor/js/ThrowPropsPlugin.min.js"></script>
<script src="Vendor/js/MorphSVGPlugin.min.js"></script>
<script src="Vendor/js/SplitText.min.js"></script>
<script src="Vendor/js/CSSPlugin.js"></script>
<script src="Vendor/js/ScrollToPlugin.js"></script>

这是我的文件夹结构

  • about.html
  • case-studies.html
  • contact.html
  • contact.php
  • css 文件夹
  • experiments.html
  • 图片文件夹
  • index.html
  • PHPMailer 文件夹
  • 资源文件夹
  • 供应商文件夹

vendor 文件夹包含您已经知道的所有 js 文件。

【问题讨论】:

  • 您使用的是绝对路径吗?您能否发布引用“GSAP.js”文件的相关代码以及您正在使用的目录结构?
  • 当您访问托管站点时,请检查您的浏览器控制台。一些 CSS 文件可能无法加载,或者它可能有一些错误来说明问题。 (您在问题中确实提到了控制台,但我不确定您是在上传文件还是在访问网站时检查)。
  • @kshikama 我刚刚编辑了问题以提供您要求的详细信息。
  • @Sidney 我检查了所有内容并加载了所有文件。没有任何错误。将所有文件上传到 Dreamhost 服务器后,我在访问该站点时检查了控制台。上传文件时,我看不到如何检查控制台。如果您不介意,我可以给您该网站的链接。
  • 发送您的实时网站链接

标签: javascript jquery mysql dreamhost gsap


【解决方案1】:

你所有的文件都正确加载了..这里的问题

function setupPage() {
  var url = window.location.pathname;
  var filename = url.substring(url.lastIndexOf('/')+1);
  switch(filename) {
    case 'index.html':
      setupIndex();
      break;
    case 'about.html':
      setupAbout();
      break;
    case 'contact.html':
      setupContact();
      break;
    case 'case-studies.html':
      setupCaseStudies();
      break;
    case 'experiments.html':
      setupsetupExperiments();
      break;
   }
}

您已经substring url 来查找页面.. 但实际上,如果 url 在 url 中没有任何页面,您没有设置任何内容

这意味着如果您访问http://www.seimodei.com/index.html,您的网站将按预期运行

所以你需要在切换之前检查filename ..你可以使用

var forcheck = url.substring(url.lastIndexOf('/')+1);
var filename = (forcheck.indexOf('.html') !== 1) ? 'index.html' : forcheck ;

或者重定向到index.html 我不推荐这个

var forcheck = url.substring(url.lastIndexOf('/')+1);
var filename = 'index.html';
if(forcheck.indexOf('.html') !== 1) {
     window.location.href = "http://www.seimodei.com/index.html";
}else{
     filename = forcheck ;
};

【讨论】:

  • 非常感谢。这似乎是问题所在。那么如何确保页面在每次访问时直接加载到 index.html 中呢?
  • @user8930909 尝试console.log(filename ) 并直接打开www.seimodei.com 看看你会得到什么
  • 你可以使用 .htaccess 或者你可以在你的根目录 &lt;?php header('location: index.html');?&gt; 创建 index.php 。最后:不要忘记检查这个作为答案
  • @plonknimbuzz 谢谢。我会试试看,看看效果如何。
  • @user8930909 答案已更新.. 检查forcheck 和filename 的两行代码.. 只需检查.html 的代码,如果不是,它将返回index.html
猜你喜欢
  • 2021-11-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-21
相关资源
最近更新 更多