javascript - Angular 404(未找到)- 无法从 Angular 应用程序中的“index.html”页面加载 Javascript 文件
问题描述
我正在尝试在我的 Angular 9 应用程序中设置 GDS 工具包,如下所述:
https://github.com/alphagov/govuk-frontend/blob/master/docs/installation/installing-from-dist.md
下面是我的项目结构:
我已将 angular.json 更新如下:
"assets": [
"src/favicon.ico",
"src/govuk/assets"
],
"styles": [
"src/styles.css",
"src/govuk/stylesheets/govuk-frontend-3.6.0.min.css",
"src/govuk/stylesheets/govuk-frontend-ie8-3.6.0.min.css"
],
"scripts": [
"src/govuk/javascript/govuk-frontend-3.6.0.min.js"
]
Angular 应用程序编译并启动正常,以确认对资产、css 和 js 文件的 angular.json 引用是正确的。
下面是我的 index.html html 文件:
<!doctype html>
<html lang="en" class="govuk-template ">
<head>
</head>
<body class="govuk-template__body ">
<script>document.body.className = ((document.body.className) ? document.body.className + ' js-enabled' : 'js-enabled');</script>
<a href="#main-content" class="govuk-skip-link">Skip to main content</a>
<header class="govuk-header " role="banner" data-module="govuk-header">
<div class="govuk-header__container govuk-width-container">
<div class="govuk-header__logo">
<a href="/instructions" class="govuk-header__link govuk-header__link--homepage">
<span class="govuk-header__logotype">
<img src="../../govuk/assets/images/govuk-opengraph-image.png" xlink:href="/instructions" class="govuk-header__logotype-crown-fallback-image"/>
</span>
</a>
</div>
</div>
</header>
<app-root></app-root>
<script src="govuk/javascript/govuk-frontend-3.6.0.min.js"></script>
<script>window.GOVUKFrontend.initAll()</script>
</body>
</html>
我以为脚本源中指定的路径是对的,所以不知道404的原因。
我使用 chrome 进行开发,但是当我尝试在 Firefox 中访问该页面时,在 Firefox 开发控制台中出现以下错误:
The resource from “http://localhost:portno/govuk/javascript/govuk-frontend-3.6.0.min.js” was blocked due to MIME type (“text/html”) mismatch (X-Content-Type-Options: nosniff)
经过一番研究,我看到了一个帖子,上面写着 script 标签中的特定类型 type="application/javascript" 。但这没有用。
我在 safari web 控制台中也遇到了以下错误:
Refused to execute http://localhost:portno/govuk/javascript/govuk-frontend-3.6.0.min.js as script because "X-Content-Type: nosniff" was given and its Content-Type is not a script MIME type.
但是,我的问题是 index.html 没有成功加载。
It gives the :
net::ERR_ABORTED 404 (Not Found) loading govuk-frontend-3.6.0.min.js in Angular App in chrome web console
任何帮助将不胜感激。
解决方案
我的解决方案是在 Angular 项目中采用以下文件夹结构。
- src -> 应用程序
- src -> 资产 -> 字体
- src -> 资产 -> 图像
- src -> 资产 -> javascript
- src -> 资产 -> 样式表
然后,更新 angular.json 如下:
"assets": [
"src/favicon.ico",
"src/assets"
],
"styles": [
"src/styles.css",
"src/assets/stylesheets/govuk-frontend-3.6.0.min.css",
"src/assets/stylesheets/govuk-frontend-ie8-3.6.0.min.css"
],
"scripts": [
"src/assets/javascript/govuk-frontend-3.6.0.min.js"
]
},
然后,我的 index.html 摘录如下:
<app-root> </app-root>
<script src="/assets/javascript/govuk-frontend-3.6.0.min.js"></script>
<script>window.GOVUKFrontend.initAll()</script>
</body>
</html>
此配置使 GDS GOV.UK JS、CSS、图像和 x.woff2 加载成功,开箱即用。
贾纳卡,感谢您的回复。您的就足以设置自定义 JS 文件。
推荐阅读
- shell - 执行脚本时出现问题
- r-exams - 在exams2pdf中使用两个具有自定义名称的模板
- python - 在 cpanel 的 python 应用程序中导入 SentenceTransformer 时出现分段错误错误
- c# - 使用 Orchard Core 在带有 Identity Framework 的 ASP.NET Core 上构建模块化应用程序
- c# - Azure Function V3 无法加载文件或程序集“Microsoft.Extensions.DependencyModel,版本=3.1.6.0
- postgresql - JOOQ r2dbc 获取数据:无法解码具有 OID 51968 的 java.lang.String 类型的值
- ruby-on-rails - 导航栏在设计错误时呈现,即使它不应该
- python - 我无法从终端将我的代码连接到本地主机网络服务器
- javascript - 如何通过在Javascript中使用循环更改其值来乘法和追加div
- flutter - 获取 CSV 以列出 dart 中的对象