为了满足客户的需要,我已经开发了一个使用Jhipster的站点--生产中的--它必须使用与/不同的web上下文来部署,例如/CustomerPortal。弹簧servlet context和角servlet context BaseHrefWebpackPlugin({ baseHref: '/CustomerPortal' })的设置都很好。
只有i18n文件的URL是错误的。
在Jhipster中,我发现了一个与这个问题相关的老问题,有人建议以这种方式修改webpack脚本webpack.common.js,:
new MergeJsonWebpackPlugin({
output: {
groupBy: [
{ pattern: './src/main/webapp/i18n/en/*.json', fileName: './i18n/en.json' },
{ pattern: './src/main/webapp/i18n/en/*.json', fileName: './CustomerPortal/i18n/en.json' },
{ pattern: './src/main/webapp/i18n/it/*.json', fileName: './i18n/it.json' },
{ pattern: './src/main/webapp/i18n/it/*.json', fileName: './CustomerPortal/i18n/it.json' }
// jhipster-needle-i18n-language-webpack - JHipster will add/remove languages in this array
]
}
})我遵循这个建议,但它对我不起作用,当我检查铬时,我总是看到i18n文件的错误404 (未找到),因为请求中的基本上下文被省略了。请求url总是http://my.base.portal/i18n/en.json,而不是预期的http://my.base.portal/CustomerPortal/i18n/en.json。
有什么解决这个问题的建议吗?提前谢谢。
编辑说明:
具有此设置的
--如果我在浏览器中直接调用资源url
http://my.base.portal/CustomerPortal/i18n/it.json--我可以看到下载的(正确的) json。因此,问题只是来自角度客户端的URL组合(资源存在于后端).
。
发布于 2021-06-29 09:15:44
解决方案 Following this tips worked for me I修改建议(在core.module.ts中):
declare let process: any;
const env = process.env.NODE_ENV;
const i18nRoute = env === 'production' || env === 'prod' ? '/CustomerPortal/i18n/' : '/i18n/';
export function HttpLoaderFactory(http: HttpClient): TranslateHttpLoader
{
return new TranslateHttpLoader(http, i18nRoute);
}https://stackoverflow.com/questions/68113370
复制相似问题