Angular 7生产版本不加载样式和js

时间:2018-11-09 22:34:46

标签: javascript angular production angular7

我有一个用Angular 7编写的小项目,我试图用它来构建生产版本。

我跑步时

ng build --prod --aot --service-worker

如截图所示,构建将无错误运行。

enter image description here

另一方面,当我尝试在浏览器中加载应用程序时,它将在控制台中引发错误,并且根本不会加载。

enter image description here

任何想法是什么原因造成的?这些文件与index.html位于同一目录中,并且确实存在。

4 个答案:

答案 0 :(得分:2)

因此,我发现如果我想在不使用页面前面的某种服务器的情况下静态地提供此文件,则必须设置构建参数--base-href ./,并且还要为诸如图片之类的资产使用相对路径

因此构建命令实际上将是

ng build --prod --aot --service-worker --base-href ./

答案 1 :(得分:1)

使用http-server在本地运行构建的代码

local Core = script.Parent
local Charles = Core.Charles
local Fern = Core.Fernando
local Step = Core.Stephanie
local Wendy = Core.Wendy

function onStart()
Wendy.Head.WendyTalk.InUse = true
end

Step.Head.StephanieTalk.DialogChoiceSelected:connect(function(player,choice)
Step.Head.StephanieTalk.Tone = "Enemy"
if choice.Name == "ContinueLoser" then
    Wendy.Head.WendyTalk.InUse = false
elseif choice.Name == "FightBack" then
    player.Character.Humanoid.Health =   player.Character.Humanoid.Health - 10
end
end)

Wendy.Head.WendyTalk.DialogChoiceSelected:connect(function(player,choice)
Wendy.Head.WendyTalk.Tone = "Enemy"
end)

Charles.Head.CharlesTalk.DialogChoiceSelected:connect(function(player,choice)
Charles.Head.CharlesTalk.Tone = "Friendly"
end)

Fern.Head.FernandoTalk.DialogChoiceSelected:connect(function(player,choice)
if choice.Name == "Agree" then
    Fern.Head.FernandoTalk.Tone = "Friendly"
elseif choice.Name == "Disagree" then
    Fern.Head.FernandoTalk.Tone = "Enemy"
end
end)

npm install http-server http-server --help http-server -p 8080 -c-1 dist/<project-name> 指定端口,-p禁用缓存,最后一个参数是应提供的目录。

如果您正在与服务人员一起玩并要对其进行测试,那就是good source of info

答案 2 :(得分:0)

在为编译后的输出文件production --prod编译项目后,您不仅可以从浏览器中打开它,还必须在计算机上使用local server来这样做,使用XAMPP

答案 3 :(得分:0)

如前所述,您可以使用ng build --prod --base-href ./

另一个选择是配置您的 angular.json 文件。

您必须在angular.json > projects > yourProject > architect > build > configurations > production下添加以下行:

"baseHref": "./"