Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 停靠时弹出菜单不起作用_Angular_Docker_Primeng - Fatal编程技术网

Angular 停靠时弹出菜单不起作用

Angular 停靠时弹出菜单不起作用,angular,docker,primeng,Angular,Docker,Primeng,我有一个很奇怪的问题。我有一个angular应用程序,使用Primeng的p菜单在p表的一行中弹出菜单 当我使用ng serve运行我的应用程序时,一切正常。但不幸的是,当我将应用程序归档时,弹出菜单不再显示。其他一切都在工作-只有我的p菜单不再显示 有什么想法吗 她的我的docker文件: FROM node:8.11.3 as node WORKDIR /app COPY package.json /app/ RUN npm install COPY ./ /app/ ARG env

我有一个很奇怪的问题。我有一个angular应用程序,使用Primeng的p菜单在p表的一行中弹出菜单

当我使用ng serve运行我的应用程序时,一切正常。但不幸的是,当我将应用程序归档时,弹出菜单不再显示。其他一切都在工作-只有我的p菜单不再显示

有什么想法吗

她的我的docker文件:

FROM node:8.11.3 as node

WORKDIR /app

COPY package.json /app/

RUN npm install
COPY ./ /app/

ARG env=prod

RUN npm run build --prod --environment $env

FROM nginx:latest

VOLUME ["/usr/share/nginx/html","/etc/nginx/sites-enabled", "/etc/nginx/certs", "/etc/nginx/conf.d", "/var/log/nginx", "/var/www/html"]

WORKDIR /etc/nginx

COPY --from=node /app/dist/ /usr/share/nginx/html

RUN rm /etc/nginx/conf.d/default.conf
COPY ./nginx-custom.conf /etc/nginx/conf.d/default.conf

EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
更新:使用npm更新升级我的angular项目后-保存并使用ng serve运行我的应用程序不再有效。似乎docker已经使用了新的来源,因此问题

现在我必须找出为什么primeng的p-menu在最新版本中不再有效

最后更新:


问题是docker使用了最新版本的Priming库,而我的开发环境仍然落后一个版本。我在一些CSS文件中使用了一些样式,这些样式与Priming不兼容,导致Priming的新版本出现问题

在Dockerfile的最后一部分:

FROM nginx:latest
VOLUME ["/usr/share/nginx/html"]
COPY --from=node /app/dist/ /usr/share/nginx/html
VOLUME指令告诉Docker两件事。一个是目录包含的数据应该在容器执行之间隐式持久化,无论调用方是否请求它。第二个原因是,该目录将永远不再更改,并且


实际上,卷是一种棘手的问题,在任何情况下,您都需要使用docker run-v或docker Compose volumes:directive指定任何想要持久化的目录。以这种方式装载的目录不需要在Dockerfile中预先声明。我只是删除了卷行。

问题是docker使用了最新版本的primeng库,而我的开发环境仍然落后一个版本。我在一些CSS文件中使用了一些样式,这些样式与Priming不兼容,导致Priming的新版本出现问题。

你能分享一下你是如何为你的Angular应用程序创建docker图像的吗?浏览dockerized应用程序时,您是否检查了浏览器控制台是否有任何错误?嗨,我的docker文件非常简单-我可以剪切并粘贴到我的问题中。浏览器控制台中没有错误。而且它是如此的奇怪-所有其他的工作只有弹出菜单不工作整个应用程序!也许唯一的区别是,我在使用dockerized版本时使用nginx,而在启动它时不使用nginx——但这不应该有任何区别。您是否检查了浏览器网络选项卡以查看任何失败的资源请求,例如javascript或css?另一个不同之处是,在docker内部,您运行的是应用程序的prod构建版本,而当您使用ng serve的dev buildHi运行时,也使用-prod启动了ng serve,这并没有什么区别。没有失败的资源请求。是的-出于一些测试原因,我仍然有这个。但是删除它并不会带来改变——我在docker版本中仍然有ni弹出菜单,但它与ng serve完美结合