运行 ng build --prod -aot
时,我通过Chrome控制台发现,某种方式的angular-cli正在为以下2个文件生成HTML
而不是javascript: {strong} inline.ef2cca55df62b04c3a6e.bundle.js
会导致此错误: main.f6759214c702206e325d.bundle.js
,当您尝试在浏览器上调用该应用时。
错误有意义,因为HTML以Uncaught SyntaxError: Unexpected token <
polyfills.ad37cd45a71cb38eee76.bundle.js:1 Uncaught ReferenceError: webpackJsonp is not defined at polyfills.ad37cd45a71cb38eee76.bundle.js:1
开头。
另外,当我查看Chrome /网络时,我会看到 <!docytpe html>
Content-Type:text/html
一件重要的事情是该应用在Request URL:http://localhost:9898/main.f6759214c702206e325d.bundle.js
Request Method:GET
Status Code:200 OK
Remote Address:[::1]:9898
Referrer Policy:no-referrer-when-downgrade
Response Headers
view source
Accept-Ranges:bytes
Connection:keep-alive
Content-Length:598
Content-Type:text/html
Date:Mon, 04 Dec 2017 12:45:38 GMT
ETag:"5a2541be-256"
Last-Modified:Mon, 04 Dec 2017 12:38:22 GMT
Server:nginx/1.13.7
下包含2个子文件夹,用于翻译:{{1}}和/dist
我生成了相同的所需文件/包。
所以我最后有:
/en
当我首先在例如/es
下调用该应用时,它会加载文件以及正确的内容和路由器:/dist
/en
styles.xxxxxxxxxxx.css
inline.xxxxxxxxxxx.js
main.xxxxxxxxxxxxx.js
polyfills.xxxxxxxx.js
/es
styles.xxxxxxxxxxx.css
inline.xxxxxxxxxxx.js
main.xxxxxxxxxxxxx.js
polyfills.xxxxxxxx.js
styles.xxxxxxxxxxx.css
inline.xxxxxxxxxxx.js
main.xxxxxxxxxxxxx.js
polyfills.xxxxxxxx.js`
,但是当我尝试投放到不同的语言时,例如http:localhost:9090/
或者http:localhost:9090/home
,然后它不起作用并抛出:http:localhost:9090/en
main.xxxxx.js http:localhost:9090/es
inline.xxxxxxx.js`包含真正的HTML标记,而不是JavaScript
答案 0 :(得分:0)
我有同样的问题,我认为这与路由有关。 因为当我重写url时,同一页面在iis上工作正常。 在apache它失败了。 所以我的假设是我的apache路由是错误的,因为我不是apache专家 希望提示有帮助