我是整个Node / NPM / Webpack世界的新手,所以很抱歉,如果这很明显。
我正在尝试构建一个与Webpack捆绑在一起的简单前端项目。我已经安装了节点,并配置了package.json文件。如果我在根目录中运行“ npm
start”,则从控制台不会出现任何错误,并且能够在浏览器中转到“ localhost:3000”,并看到“ hello,world”输出。
我的下一个任务是包括一个样式表,其中包含对图像的引用,如下所示:
.myimg {background: url(path/to/file.jpg);}
通过这样的设置,我可以通过webpack-dev-
server查看图像(通过在Web浏览器中转到localhost:3000),但是如果我构建项目,则图像的路径是错误的。我不知道我在做什么错,所以我把这个扔给Stackiverse,希望外面的人会知道我在做什么愚蠢的事情。
这是我的package.json文件:
{
"name": "webpack-test1",
"version": "0.0.1",
"description": "My project WTF.",
"private": true,
"scripts": {
"start": "node server.js"
},
"devDependencies": {
"css-loader": "^0.15.2",
"file-loader": "^0.8.4",
"style-loader": "^0.12.3",
"url-loader": "^0.5.6"
},
"dependencies": {
"webpack": "^1.9.6",
"webpack-dev-server": "^1.8.2"
}
}
…这是我的webpack.config.js文件:
var path = require('path');
var webpack = require('webpack');
module.exports = {
entry: [
"./src/start.js"
],
output: {
filename: "bundle.js",
path: path.join(__dirname, 'build'),
publicPath: '/build/'
},
module: {
loaders: [
{ test: /\.css$/, loader: 'style-loader!css-loader' },
{ test: /\.(png|jpg)$/, loader: 'file-loader' }
]
}
};
…然后是index.html文件:
<!doctype html>
<html>
<head>
<title>Webpack Test</title>
</head>
<body>
<div class="imgtest">hello, world</div>
<script src="build/bundle.js"></script>
</body>
</html>
…配置文件中引用的“ start.js”文件:
require('./test.css');
console.log("y u no work?");
…最后,css文件本身的内容:
.imgtest { background: url(img/volcano.jpg);}
就像我在顶部所说的那样,在webpack-dev-
server世界中,映像的路径可以正确解析,并且显示为DOM元素的背景。在公开的世界中,浏览器告诉我找不到文件,而Safari的控制台清楚地显示了错误的文件路径:
http://localhost/build/1b05d814aa13ac035c6b122b9f5974f8.jpg
正确的本地路径是这样的:
http://localhost/~username/webpack1/build/1b05d814aa13ac035c6b122b9f5974f8.jpg
显然,我做错了,但我不知道该怎么办。任何帮助或建议,不胜感激。
谢谢!
知道了 我只是想通了。问题出在webpack.config.js中的“ publicPath”变量。我有这个:
publicPath: '/build/'
…回想起来,这显然是一条绝对的道路。我需要的是:
publicPath: './build/'
…这是相对路径。现在一切似乎都可以进行了。
更新:
我对Webpack还是很陌生,所以所有这些仍然很令人困惑。话说回来…
我想我已经走错了路。我的Webpack项目在项目的根目录中有一个index.html文件,而我试图同时使用它作为webpack-dev-
server命中的文件,以及构建将用作入口点的文件。那让我头疼不已,而且我认为我遇到的任何解决方案都没有奏效。然后我发现了这一点:
https://www.npmjs.com/package/html-webpack-
plugin
这使您可以从模板创建index.html页面,这意味着它实际上不必作为文件存在。webpack-dev-
server动态创建它并将其存储在内存中,当您发布到“ build”文件夹时,将在该文件夹中创建一个index.html文件。
可能存在一种真正的“正确”方式来处理我在这里提出的问题,但这似乎确实很有效,并且以一种about回的方式,它可以解决我的问题,因为它完全避免了整个路径问题。
无论如何,这是种无聊的事情。我希望它能对某人有所帮助,和/或希望对此有更多了解的人来这里,使我直率。
本文向大家介绍HTML 外部CSS样式表,包括了HTML 外部CSS样式表的使用技巧和注意事项,需要的朋友参考一下 示例 标准做法是将CSS<link>标签放在<head>HTML顶部的标签内。这样,将首先加载CSS,并将在加载页面时将其应用于您的页面,而不是在加载CSS之前显示无样式的HTML。该type属性在HTML5中不是必需的,因为HTML5通常支持CSS。 和 ...在HTML5中做同样
问题内容: 我是React和React Native的新手。目前,对于每个组件,我都将代码分为2个单独的文件: 对于所有的React代码,以及; 用于StyleSheet 有没有办法将道具传递到外部StyleSheet? 例如 : 范例: 上面的代码不起作用,但更多的地方只是为了让我理解我正在尝试做的事情。任何帮助深表感谢! 问题答案: 创建一个将iconColor和iconSize作为参数并返回
样式表的作用是控制网页样式,只有创建样式表,并把它应用到网页中,才能发挥样式表的作用。 创建外部样式表 外部样式表,是在网页外部的样式表文件中定义的样式。由于这些样式并不是HTML文档的一部分,而是在HTML文档的外部独立存在,故称外部样式表。 样式表文件是纯文本文件,可以使用任何文本编辑器来编辑,这里使用Windows自带的记事本,来创建外部样式表。步骤如下: 1)在Windows系统中,点击开
我试图自定义我的MapBox地图为Android使用这里概述的样式规格表,但我得到一个源错误。 我当前的样式表是: 但我得到了这个错误,地图上的水景没有受到影响: 我无法找到使用Android MapBox自定义样式表的完整示例。你知道我为什么会犯这个错误吗?
我目前使用htaccess强制使用index.php文件。 在当前的网站上有一些上传的内容,如 > 上传/item/12.jpg 上传/item/13.jpg 我想重写它。 上传11.jpg 有人能帮我找到这个的和。 更新 更新的htaccess 这有助于我使URL看起来像 www.store45.loc/uploads-item-11-sample-watch.jpg
问题内容: 就像是: 问题答案: 这将创建一个包含链接的“另请参阅”标题,即: 将呈现为: 另请参见: http : //google.com 而这: 将创建一个嵌入式链接: 见http://google.com