javascript - 基本(本地)HTML 不加载图像或 js 但加载 css

标签 javascript html css angularjs css-selectors

多年来我一直在使用网络,但今天我开始使用一个基本的 Angular 应用程序来做一些非常简单的事情,我只是使用 Angular 文件和一个 html 文件作为我的基础。

在做所有 Angular 事情之前,我基本上只是让骨架运行,我注意到浏览器找不到 app.js 文件的相对路径。它可以找到 .css 文件,但不能找到 .js。

所以我放了一张图片进行测试,它也找不到!下面是我的代码:

<!DOCTYPE html>
<html ng-app="ecsApp">
    <head>
        <title>Client Services Support | Elite Chat</title>
        <link rel="stylesheet" href="public/stylesheets/foundation.min.css">
        <link rel="stylesheet" href="public/stylesheets/main.css">
        <base href="/">
    </head>
    <body ng-view>
        <img src="public/images/clock.jpg">
        TEST

        <script src="app_client/app.js"></script>
    </body>
</html>

这是我的文件夹结构:

project 
    > index.html
    > app_client 
        > app.js
    > public 
        > images 
            > clock.jpg
        > stylesheets
            > main.css

我可以使用图像的绝对路径(系统路径,IE c:\user\blah\folder\project\public\images\clock.jpg)它会显示。但显然系统路径是完全愚蠢的,不能使用。

为什么我不能做像显示图像这样简单的事情?我什至将图像放在与 index.html 相同的位置提交一个试过的 <img src="clock.jpg">它仍然不会显示图像。

最佳答案

所以这个故事的寓意是,当做任何比静态 HTML 站点更复杂的事情时,使用某种网络服务器。

如果您查看原始问题中的 HTML,您会在 <head> 中看到本节:<base href="/"> .当在本地编辑文件并且使用网络服务器(例如 node.js 或 xampp 或任何您想要的)时,基本路径(浏览器中的 url)类似于

file:///C:/Users/person/folder/project/index.html#/ 

因此浏览器将尝试在 <base> 之后加载文件基于疯狂文件路径的标签(哈哈,双关语)。这就是为什么此时以下内容为真:

不工作
<img src="public/images/clock.jpg">

工作
<img src="file:///C:/Users/person/folder/project/public/images/clock.jpg">

重要:
现在,如果我想修复这个问题,我可以运行一个 node.js 服务器并将这些文件扔进去或上传到网络以使用相对 src属性。否则,我将不得不使用系统文件路径。

关于javascript - 基本(本地)HTML 不加载图像或 js 但加载 css,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39882237/

相关文章:

Javascript 映射集合

javascript - 需要每秒调用脚本,还是更好的解决方案?

jquery - Bootstrap-Select Accordion 的 z-index 问题

javascript - 多项选择不突出元素

javascript - jQuery- .css() 不适用于输入

javascript - 在 .trigger(click) 事件后聚焦或滚动到输入元素

javascript - react 文本之间的跨度空间

javascript - 可以在 foreach() 中使用服务

html - 如何堆叠行内 block 元素

html - 如何使用 flexbox 均匀地间隔嵌套和未嵌套的对象?